So, a more obscure language:
I have a JSON object representing a “workflow” – a self-similar tree structure of nodes, each with a collection of predicates, a collection of actions, and a collection of child nodes. The predicates and the actions are not exactly functions; rather, they’re descriptions functions. If you squint your eyes and tilt your head, it’s a DSL. Ultimately, you apply the workflow to a state, generating a new state: w(state, workflow) -> state’.
I’ve been working this in #elixir, essentially running a workflow interpreter. Then a wild hair: homoiconicity. The JSON tree structure can be expressed in a lisp-y way fairly easily, and through some transform of sorts, that can be ultimately be expressed as a function of state – a closure, I suppose. The data (JSON object) with some transform is code.
I’m out on the edge of what I know. I can probably turn the interpreter work into a single closure using just elixir, but doesn’t it sound like a case for #lisp ?
… and what lisp runs on the BEAM? (Well, beside Clojerl :-p ) #LFE.
Do I know LFE? Absolutely not. Should that stop me? LOL…
Enter Claude Sonnet 4.0.
… and exit Claude Sonnet 4.0.
I don’t know how many ai slot machine credits I spent on the task “load a json object and tell me some stuff about it.”
Absolute torture – from getting set up to write some code to final scripts and beam code to run in lfe repl. Torture.
At least I have a sample to study… because, am I going to give up on the idea?
LOL.