Вероятно, никому нет дела до этого теперь пятилетнего вопроса, возможно, даже от первоначального вопроса.Но, как старый парень в области графики в Лиспе, я хотел взвесить. В названии упоминается «графическое программирование», тогда возникает вопрос о библиотеках для разработки игр.Стоит отметить, что графическое программирование включает в себя множество тем, не связанных с программированием игр.(Так, например, выполнение визуализации данных в Clojure было бы примером «функциональных языков программирования, подходящих для графического программирования», но не игрового программирования.) Существует также различие между функциональными языками (такими как Lisp, где все является функцией, норазрешены побочные эффекты) и языки, которые являются чисто функциональными только с неизменяемыми типами данных (например, Haskell или Clojure).
Конечно, существуют основанные на Лиспе графические системы, написанные в стиле «мультипарадигмы», который предназначен дляскажем, не чисто функциональный / неизменный.Например, я работал в Symbolics в начале 1980-х годов, когда мы создали одну из первых систем «создания цифрового контента» (например, Maya или AutoCAD) полностью на Лиспе.Моя дипломная работа в 1978 году была посвящена предметно-ориентированному языку на основе Lisp для процедурной анимации под названием ASAS.Мы использовали это в Triple-I (Information International Inc.), чтобы сделать очень раннюю работу CGI для спецэффектов в художественных фильмах, включая TRON 1982 года.(Это описано в этой статье SIGGRAPH .) Наконец, игровая студия Naughty Dog запрограммировала игровую логику нескольких названий (Crash Bandicoot, Jak и Daxter?) На языке, вдохновленном Scheme, под названием Game Oriented Assembly Lisp (ЦЕЛЬ).
Говоря о более современных усилиях и более строго функциональных / неизменных языках: «LambdaCube 3D - это чисто функциональный язык, специфичный для Haskell, для программирования GPU (графический процессор)».
В своей речи Джона Кармака на Quakecon 2013 он подробно (около 30 минут) рассказал о своем интересе и экспериментах с чисто функциональными языками для разработки игр.По его мнению, использование функционального программирования имеет очевидные преимущества, но есть некоторые проблемы, и что он не продвинулся достаточно далеко, чтобы иметь твердое мнение.Он говорит об экспериментах с Хаскеллом и Лиспом.Эта тема относится к 1: 17: 00-1: 49: 00 в этом видео .