racket / rhombus

Rhombus programming language
Other
344 stars 62 forks source link

Gather literature review #14

Closed jeapostrophe closed 2 months ago

jeapostrophe commented 5 years ago

Sweet Wisp http://breuleux.net/blog/liso.html Honu Remix and many many more

AlexKnauth commented 5 years ago

Another thing worth looking at is the Parinfer editor extension, and its line invariant for converting between indentation and paren structure in both directions.

sorawee commented 5 years ago

Also @shriram's http://shriram.github.io/p4p/

soegaard commented 5 years ago

The Mathematica language is a language that uses a non s-expression syntax, but nevertheless feels lispy to use. An application of a function f to arguments x and y is written f[x,y]. This decision makes it easy to use parenthesis for grouping. Using FullForm, TraditionalForm, StandForm and InputForm one can convert between representations of an expression. The full form resembles s-expressions using {} for lists and F[x,y] for applications.

For a taste of this syntax in Racket: https://docs.racket-lang.org/infix-manual/index.html

The tutorial for Mathematica syntax : https://reference.wolfram.com/language/tutorial/TheSyntaxOfTheWolframLanguage.html

Complete (?) overview of Mathematica syntax: https://reference.wolfram.com/language/guide/Syntax.html

LiberalArtist commented 5 years ago

@lexi-lambda's Hackett has an infix syntax: https://github.com/lexi-lambda/hackett/blob/8e4e0e904ac37df58b8c8ef29c0f94ad4151246f/hackett-doc/scribblings/hackett/guide.scrbl#L251 (Link to the Scribble source because the docs seem to be down.)

rocketnia commented 5 years ago

The Arc Forum collected a list here a while back: https://sites.google.com/site/arclanguagewiki/more/list-of-languages-with-s-expression-sugar

rocketnia commented 5 years ago

Another related vein of prior art, which you're no doubt aware of: The idea of "language-oriented programming," especially combined with Python-ish syntax, is something I associate with language workbenches.

lexi-lambda commented 5 years ago

The papers D-Expressions: Lisp Power, Dylan Style and The Java Syntactic Extender from 1999 and 2001, respectively, describe procedural macro systems designed for the Dylan and Java programming languages. Both use a technique very similar to Honu, albeit without the enforestation step that allows programmers to define infix macros.

mflatt commented 5 years ago

Mentioned on the mailing list: https://elixir-lang.org/

mflatt commented 5 years ago

https://www.pyret.org/docs/latest/

mflatt commented 5 years ago

https://github.com/tonyg/racket-something https://groups.google.com/d/msg/racket-users/0WyNzafwPCA/jdn4ZqrLCQAJ

pschmied commented 5 years ago

The Julia language is quite lispy and I believe achieves this in part with a ~Scheme dialect called femtolisp:

pschmied commented 5 years ago

I don’t know if it’s germane, but some languages have gone the other way—implementing an S-expr surface language atop another language:

samth commented 5 years ago

Rebol/RED was mentioned somewhere I was reading recently.

sorawee commented 5 years ago

Here? https://news.ycombinator.com/item?id=21134929

samth commented 5 years ago

Probably! Thanks.

stereobooster commented 3 years ago

Here is a quite big list: History of alternative syntaxes for Lisp

rocketnia commented 2 years ago

I just found this subreddit that has many examples, some of which are already on the list: https://www.reddit.com/r/whitespaceLisp/

Lazerbeak12345 commented 2 years ago

I was working on this half-designed language when I discovered racket meets 90% of the design goals I had in mind. https://github.com/Lazerbeak12345/chaml

Not as macro friendly as it could be, and java with xml middle-languages was a poor choice for implementation. (keep in mind I knew nothing of lisp whatsoever at the time, aside from it's history)

In retrospect, it's pretty clunky. I actually haven't looked at it for 2 years.

mflatt commented 2 months ago

527