RSS Feed

Lisp Project of the Day

rutils

You can support this project by donating at:

Donate using PatreonDonate using Liberapay

Or see the list of project sponsors.

rutilsutilsreadtable

Documentation😀
Docstrings😀
Tests 😀
Examples😀
RepositoryActivity😀
CI 🥺

Rutils translated as Radical Utilities. It is a collection of many useful utilities. Some of the utilities can be found in other libraries, for example, arrow macro or short notation for lambdas.

There is an interesting document which describes why rutils is so radical. In short - it provides a reader macro for hash tables and short aliases for many common lisp operators and generic accessors.

Previously I didn't dig into the rutils documentation and used only a few functions to work with lists. But now I found a great tutorial covering most rutils features. I recommend you to spend few evenings reading it and trying different code samples.

Here is a small example which demonstrates how hash table syntax and generic accessors work:

POFTHEDAY> (named-readtables:in-readtable rutils:rutils-readtable)

POFTHEDAY> (import 'rutils:?)

POFTHEDAY> (let ((obj #h(:foo '(1 2 3))))
             (? obj :foo 1))
2

;; It also works with curly braces:
POFTHEDAY> (let ((obj #{:foo '(1 2 3)}))
             (? obj :foo 1))
2

Here a question mark is an abbreviation for rutils:generic-elt generic and you can define a custom method to access different kinds of containers.

I definitely will try to use more of rutils in my code now.


Brought to you by 40Ants under Creative Commons License