Years before #VibeCoding became a thing, we had another way to tell computers to run code using simple words. It was called #FunctionalProgramming.
#ReleaseWednesday — Extracted & extended the LISP-like DSL from an existing #ThingUmbrella example[1] as new small package for better/direct re-use in other projects:
The core language is kept intentionally minimal, aimed at simple sandboxed data transformations/derivations, small code snippets/expressions in GUIs or config settings. However, the language is very easy to extend/customize with new functions or control flow constructs etc. Currently, the language is interpreted and has the following builtins (see screenshots). There's no macro support so far (and not sure if that's even desired here)...
[1] The original #HowToThing example browser REPL this was extracted from (and which has now been updated to use the new package):
https://demo.thi.ng/umbrella/lispy-repl/
#ThingUmbrella #Lisp #DSL #FunctionalProgramming #REPL
#programming #gamedev #devlog #commonLisp #series #lazyEvaluation #functionalprogramming https://screwlisp.small-web.org/lispgames/cl-series-for-game-logic/ #lispgamejam
Since cl-series generates native common lisp code by working at macro expansion time, I consider it suitable for my software individuals (who want only clos-less common lisp and their own logic (which they have an introspective theory of).
In particular, I use series to cut out rectangular subsequence of sequences -s
SERIES DOC UPDATE FROM RTOY https://gitlab.common-lisp.net/rtoy/cl-series/-/wikis/Series-User's-Guide
#MoonBit looks like a really interesting new #ProgrammingLanguage
Especially its functional, data-oriented design and #WASM support stand out to me.
Looks _a lot_ like #Rust, but more functional in style.
It is expected to reach 1.0 this year.
This took me three months (a month longer than I had hoped), but I finally have merged it into the main branch!
This patch rewrites the Emacs Lisp lexer and parser in Scheme using Scheme code that is 100% compliant with the #R7RS standard, so it should now work across all compliant Scheme implementations. Previously the old parser relied on #Guile -specific regular expressions.
This patch also implements a new feature where a stack trace is printed when an error occurs. This of course makes debugging much, much easier. Previously the old parser did not keep track of where code evaluation was happening, it simply produced lists without source location information. The new parser constructs an abstract syntax tree (AST) and source locations are attached to the branches of the tree which can be used in error reporting and stack traces.
Next I will make whatever minor tweaks might be necessary to get my Emacs Lisp interpreter run on other Scheme implementations, in particular MIT Scheme, Gambit, Stklos, and Gauche. I would also like to try to get it running on Chicken and Chez, although these are going to be a bit more tricky.
Then I will continue with the task of implementing a new declarative GUI library.
Andy is convinced that functional programming isn’t boring. Listen to find out if he’s right!
The minimal megaparsec tutorial. ~ Clément Hurlin. https://www.tweag.io/blog/2025-04-24-minimal-megaparsec-tutorial/ #Haskell #FunctionalProgramming
F* (fstar) Interactive Tutorial:
https://fstar-lang.org/tutorial/
I'm only like 10% into the tutorial, but this language is CRAZY (fun)!
I try to learn the fundamentals of it, so I can use the backend of it in #Aeneas... so I can ultimately formally verify my #Rust crate (former attempts with #Creusot and #Kani failed for me).
Aeneas:
https://github.com/AeneasVerif/aeneas
See part two of toot for a toy example of proving function equivalence
1/2