Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
ocaml-containers
A lightweight, modular standard library extension, string library, and interfaces to various libraries (unix, threads, etc.) BSD license.
Author mentions trying fish shell and not being satisfied, but I think it's a good interactive shell option if you like lisps and want something nice to use. It's not lisp, but its choice to replace using `foo` and $(foo) for command substitution with (foo) feels natural coming from lisp or ML syntax. For general use it just feels right without needing a lot of effort to get a nice interactive experience.
I found the code for changing SLY prompt: https://gitlab.com/ambrevar/dotfiles/-/blob/master/.emacs.d/lisp/init-sly.el#L288-406
That record/field parsing library would be a tool to handle a broad category of command-line programs. Once the library has broken the input stream into a collection of records and fields, another layer would then turn them into internal representations. The JSON-based RecordStream tools are illustrative here: there are some tools that parse based on a delimiter or a regular expression, some that parse documented generic non-JSON formats like XML, and some that parse application-specific files like tcpdump outputs. In a Lisp world, all of the dedicated stream manipulation tools are redundant, and you avoid parsing and printing at every step in the chain.
I'm not a fan of some of the opinionated things it does and find it bloats the executables a bit much for my liking, but it is coherent and nicely made. I was looking into trying Batteries instead but someone suggested containers and it seems more modular and an extension of the stdlib rather than a replacement, which is more to my liking.