4 ms·
The thing is, lispers don't want more syntax. They've rejected Dylan, sweet-expressions, and a million other experiments. There's a sizable contingent who compl
by aaron-lebo 9y ago
The thing is, lispers don't want more syntax. They've rejected Dylan, sweet-expressions, and a million other experiments. There's a sizable contingent who complain about Clojure using [] instead of all ().
So really all you are talking about is making a nice syntax that enables macros, and that doesn't require lisp. See Elixir.
If lispers aren't going to adopt extra syntax, your only hope is to attract non-lispers, and then you've got the issue where your lispy language has to be better than existing languages at doing something, and that's hard.
Why go to so much trouble for something that's been rejected repeatedly? Macros don't require lisp syntax and that's the main advantage.
My own ghetto transpiler converts this:
sum = reduce partial(+)
[1, 2, 3] sum + 1 println
into this:
(def sum (partial reduce +))
(println (+ 1 (sum [1 2 3])))
https://github.com/aaron-lebo/prose https://github.com/aaron-lebo/prose
It's fun to think about, but not sure the general concept has an audience.
edit:
Bob Nystrom's lark is one of the cooler non-lispy lisps out there:
https://github.com/munificent/lark https://github.com/munificent/lark
- lispm 9y ago> The thing is, lispers don't want more syntax. Lisp already has a lot syntax, but on top of s-expressions. Lispers usually want to keep that two-stage syntax: s-expressions for data and Lisp on top of s-expressions. This enables the simple s-expression data representation and manipulation to be applied to programs, too. Lispers did not really reject the non-s-expression Dylan syntax - it was never developed for them. Apple developed that syntax and Dylan to target non-Lisp developers.
- UIZealot 9y agoSometimes I wonder if making the top level parentheses optional would go some way towards making Lisp more palatable to other programmers. So (def sum (partial reduce +)) (println (+ 1 (sum [1 2 3]))) becomes: def sum (partial reduce +) println (+ 1 (sum [1 2 3]))
- mmalone 9y agoSee https://srfi.schemers.org/srfi-110/srfi-110.html https://srfi.schemers.org/srfi-110/srfi-110.html. No idea why it hasn't shown up in a popular language (or maybe it has and I'm just naive).