I don't speak wingding you fucking niggernerds, ←↭↰↻↠↞↘↜↡↹ right back at you
I'm not a category either, am learning though. I think in a year or two I'll get the hang of monads (and just when I think I had it they go on and throw Arrows at me ffs)I'm actually learning a lot about category theory as I'm (sort of?) following along with your discussion. I've always been meaning to take a look at Haskell and monads and everything, but just never got around to it for whatever reason.
I'm realizing more and more that I basically want HolyC with managed memory and an interface system
My stab at it has been going relatively well; right now I'm working on a bytecode format to store programs. One problem I haven't quite settled on a solution for is how to represent s-expressions in a bytecode format. My current thinking is to create nested expressions based on data dependencies.
If you're feeling lazy you can just import clojure as a library and use its collections to represent s-expressions like it does internally for itself, then maybe hack clojure.tools.emitter to spit bytecode out from that. "transformed into objects that implement a function interface" is how clojure implemented lambdas, interestingly.Due to a desire to have interrogable and transformable expressions the bytecode isn't intended to be executed directly by the interpreter, rather transformed into objects that implement a function interface.
Anyone here have a better idea for representing s-expressions in bytecode? This'll do, but I feel it's not optimal.
I'm also intrigued by the idea of generally embedding an interpreter on top of a program in a dynamic environment, which the jvm is. Please update on whatever you do with it, very interesting.
On a semi related note, have you run any sort of profiling on your game? Got pretty flame graphs?