Email list hosting service & mailing list manager

Portable S-expressions Lassi Kortela (16 Apr 2021 09:40 UTC)
Re: Portable S-expressions John Cowan (20 Apr 2021 12:09 UTC)
Re: Portable S-expressions elf (20 Apr 2021 12:14 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 12:49 UTC)
Re: Portable S-expressions elf (20 Apr 2021 12:59 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 13:09 UTC)
Re: Portable S-expressions John Cowan (20 Apr 2021 19:29 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 20:55 UTC)
Re: Portable S-expressions Peter Bex (20 Apr 2021 12:22 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 13:03 UTC)
Re: Portable S-expressions Peter Bex (20 Apr 2021 13:15 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 13:27 UTC)
Re: Portable S-expressions Lassi Kortela (20 Apr 2021 13:33 UTC)

Re: Portable S-expressions Lassi Kortela 20 Apr 2021 13:03 UTC

> What about Clojure, Carp and Janet?

I'd like to support all of them. A reader is only 100-200 lines of code.

> They use [] for vectors/arrays
> like Elisp, and #() even means something completely different in
> Clojure: syntax for anonymous functions a la "cut"/"cute".

Indeed, [] has different meanings. Would be least ambiguous for [ and ]
to be a syntax error in POSE, as well as { and }.

The angle brackets < and > should be symbol-constituent characters since
they are that way in most/all Lisp dialects.

> It might be worthwhile to also take a look at EDN, even though it is
> woefully underspecified.

Yes, and yes. I agree that EDN is a bit of a rush job. E.g. things like
the bignums suffix [sic!] and true/false are lifted from Java.

EDN is like the YAML of Lisp -- the quest for convenience went so far
that the complexity is starting to be too much of a burden. Apart from
being confusing, complex parsers are now security hazards as well.

John has done good work specifying the text format of Twinjo (the
work-in-progress dual binary/text format) based on S-expressions. For
more complex things we could rely on it.

Nothing also prevents us from specifying a tower of S-expression
notations of increasing complexity, such that each notation is a fully
compatible superset of all the less complex ones. We should make sure
Twinjo's text syntax is a superset of POSE.