Interestingly Halo used Lisp for scripting, and that rarely comes up.
That alone is a pretty hard condemnation of LISP/functional for games.
It's not really LISP/Scheme at that point, but a LISP-ish syntax for an imperative language.
Some tasks are more innately imperative. Games (and game scripting) are in that category. Trying to force game programming to work in FP is like trying to build a computer in Minecraft: It's cool to see that it can be done, but it doesn't say anything about whether it should be done.
Proving Turing Completeness doesn't mean you would want to actually write code in a Turing Machine.
(tagbody
start
(decf x)
(format t "~a~%" x)
(when (plusp x)
(go start)))
Lisp works just fine in imperative contexts.Imperative is normal for most Lisps.
https://news.ycombinator.com/item?id=9813111 https://www.gamasutra.com/view/feature/134566/the_secrets_of...
Even on GCed Lisps there were programs written which did manage memory manually.