|
|
|
|
|
by TOGoS
364 days ago
|
|
This is fine and interesting, but what I think is lacking in S-expression isn't funky vertical syntax, but a way to directly represent objects that are not lists. Otherwise one needs to invent some representation on top of S-expressions (and then a list isn't necessarily a list anymore; everything goes through an additional layer of encoding/decoding, losing the elegance of S-expressions), or use some extension syntax (usually involving '#'), which varies from language to language and might not even be interpreted by the reader (but logically expand to some list expression that needs to be interpreted again later, so you're not really any better off than with the first approach). I kind of want something like, to borrow JSON-like syntax and gloss over namespacing issues: (foo .
{type: listy-cons-cell
head: bar
tail: (baz quux)})
...which would be another way to say (foo bar baz quuz), but would make it possible to represent any data structure you like at the same level as atoms, strings, and lists. |
|
You can have vectors, hash maps, and sets in addition to lists, symbols, and keywords.