Lip service to a LISP serializer

(
    ("Rembrandt" . "van Rijn")
    ("Johannes" . "Vermeer")
    ("Jheronimus" . "Bosch")
    ("Frans" . "Hals")
)

Simple, compact, expressive… Beautiful!

Lisp in the Sky with Diamonds

That what you witnessed above, is not real Lisp. Or at least it was not produced by real Lisp…

I confess, I have been experimenting with Rust again. This time I started by visiting the website of Serde. When I landed on the homepage I saw a list of data formats implemented for Serde. I recognized many names, all the many that I have used before. But one stood out to me, this one was the S-Expression format. I have heard of its potency; I have heard that it can make you understand, things you have never understood before.

I took a handfull of parentheses, and I took them whole. When the lights went finally out, I experienced the highest of intellectual highs. The realm of computation is a wonderous plain, and one day you will find it too.

S-Expressions

So, I have discovered S-Expressions as (de)serialized by Rust’s Serde. S-Expressions are the symbolic form of Lisp objects, similair to what JSON is to JavaScript. But while JSON objects are primarily for data, S-Expressions can also be used for code. Which means that S-Expressions can be used to create small/domain-specific programming languages, to implement various forms of automata, or to use as syntactically interesting key/value stores.

Rusty calculators

I will continue this experiment, and see if I can write a language that can do basic arithmatic. About which I will undoubtedly write about.

For now get yourself a copy of lexpr-rs, and see where it will take you.