3 ms·
I would agree, I love the structure s-expressions bring, especially using smartparens in Emacs. At the same time I really enjoy some of the deviations from pure
by hencq 7y ago
I would agree, I love the structure s-expressions bring, especially using smartparens in Emacs. At the same time I really enjoy some of the deviations from pure s-expressions that Clojure has made (like hash literals, using vectors for function arguments, using position instead of parentheses in binding forms). This suggests to me that there might be a sweet spot between Algol and s-expressions.
I'm quite interested to see where the whole Racket 2 thing goes in that regard. For example, the examples here all look quite clean to me: https://github.com/mflatt/rhombus-brainstorming/blob/shrubbery/shrubbery/0000-shrubbery.md https://github.com/mflatt/rhombus-brainstorming/blob/shrubbe...
- tombert 7y agoI feel like Clojure's deviation from S expression still somewhat follows the spirit of Lisp at least; the first-class hashes and vectors still correspond to native data structures and as a result, the syntax reflects that. In some ways, I feel like Clojure's embrace of this almost follows the Lisp formula better than something like, for example, Chicken Scheme, which by default does scheme-style hashes that don't correspond directly to syntax.
- jlarocco 7y agoI've also grown to love s-expressions, but even Common Lisp deviates from pure s-expressions in places ( #( ... ) array syntax, for example), and the mechanism is customizable via reader macros. Some examples: https://gist.github.com/chaitanyagupta/9324402 https://gist.github.com/chaitanyagupta/9324402 https://lisp-lang.org/wiki/article/reader-macros https://lisp-lang.org/wiki/article/reader-macros