The first thing that comes to mind with no restarts or recompiling is the mangled variables you get in Jupiter if you're mucking around trying to get a prototype going and forget which cells have been run. I can definitely see agents having a problem with that. I would just try to make compilation fast if possible
Immutability and stateless separate the nrepl from jupyter. Clojure is not strictly functional but it tends to be the most straightforward way to do most tasks in the language.
What characterizes a "functional language" often skirts history. Clojure defaults to immutable data structures and is more functional than its Lisp ancestry, although Lisp does enjoy "functional" status in all but the most religious programming circles.
My history is a little hazy but IIRC lisp families were inspired by the lambda calculus and Scheme was a champion of lexical scoping at a time where people thought dynamic scoping was the only practical way to express programming languages. So it's amusing that the lisp families are now not considered functional
A requirement for functional programming is that there's no action from a distance, thus, functions should not modify variables outside of their scope.
This doesn't exactly mean immutable data structures are mandatory, but it helps.
In any case, most of the functions that operate on data structures in Lisp (or Common Lisp) do it in an immutable way.
That is a projected, community-localized, requirement that ignores historic evolution of the practice. It is very interesting that machines can now be more flexible and understanding about nomenclature subtleties like this than some human engineers. Since we are adding layer after layer of pedantry -- rather than 'requirement' -- 'ethic' or 'practice' would be a more effective, practical and inclusive word choice here. The subtext of this thread, that Clojure somehow isn't a "functional enough" language to be labelled a "functional" language is narrow community prejudice.
People who are already using LLMs to drive Clojure REPLs say it works well (see #ai-driven-development on the Clojure Slack). I don't think forgetting which cells have been run is a problem with the described set up.
Yeah I went through hell migrating everything from ADO to GH Actions a year or so ago and even after all this I'm not even slightly close to wanting to go back
> Once the number three, being the third number, be reached, then lobbest thou thy Holy LLM of Antioch towards thy task, who, being naughty in My sight, shall snuff it.