My point is that there is nothing about functional programming, specifically the "Data structure + Algorithm" style, that makes it unsuitable for building complex applications like air traffic control system or bank lending system, and it has in fact been used successfully in domains like that.
I was mostly supplying an example rather than taking a side in the philosophical argument, to be clear. I’d call that idiomatic Clojure, but I’m a heathen that very much appreciates Clojure being on top of the JVM and offering Java interop.
Another big Clojure UI/graphics framework is Quil, which is based on Processing and does an even worse job of hiding it’s imperative/stateful core.
> The problem with that is that (nearly?) every GUI toolkit is object oriented
Except for things like React which are more or less functional reactive programming, but in case of react its stateful. Functional reactive programming exist, and GUI is not obliged to be OO
clojure was introduced in 2007, there have been many GUI toolkits that have been implemented entirely from scratch in other languages since then. QML+QtQuick, Dart+Flutter, Nuklear in C, Nana or neoGFX in C++, etc etc