0

Are there any other S-expression or polish prefix notation based languages apart from the Lisp dialects?

It doesn't have to be a functional programming language or be related in some way to Lisp.

When I say Lisp dialects, I mean Arc, AutoLISP, Clojure, Common Lisp, Emacs Lisp, EuLisp, Franz Lisp, Interlisp, ISLISP, LeLisp, Maclisp, MDL, Newlisp, NIL, Picolisp, Portable Standard Lisp, Racket, Scheme, SKILL, Spice Lisp, T, XLISP, Zetalisp (from the Wikipedia page).

There are plenty of completely different languages using C-like syntax or Python-like syntax, but for S-expressions or Polish prefix notation syntax, there appears to be only the Lisp dialects. Is this really the case and why?

ruben2020
  • 1,549
  • 14
  • 24
  • Usually, once you define a parenthesized prefix notation for a language, people call it a lisp. – Joshua Taylor Jun 16 '13 at 21:13
  • BitC used to be S-expressions-based in its early versions. – SK-logic Jun 17 '13 at 12:46
  • I would cosider XSLT a prefix notation so it is also a LISP dialect and I think python too if you imagine a parenthesis every time you see an ident. I would say all languages with s-exprs are LISP dialect in the same manner as Java, C++, C#, php, perl all share similar syntax and are B-dialects. Clojure and Scheme are not more closely related than Perl and Java. – Sylwester Jun 17 '13 at 21:33

2 Answers2

2

You could call any language that uses braces for blocks and some kind of keyword-based parse tree a C (or ALGOL) dialect. That would restore the symmetry.

In other words: define "completely different".

Svante
  • 50,694
  • 11
  • 78
  • 122
1

When I read the term "Lisp dialect" I think that at the very least in addition to the parenthesized prefix notation there should be also a way to manipulate code as data and data as code.

Of course nothing forbids to just keep the notation but provide instead a static language where the data/code duality is not present like C++... simply it doesn't make much sense doing so and therefore there are no well known examples.

The subset of scheme used in SICP is such a language.

There are no languages with a parenthesized prefix notation and code/data duality except Lisp dialects because that is normally the definition of a Lisp dialect.

6502
  • 112,025
  • 15
  • 165
  • 265
  • If I stand in error (quite possible) would the downvoter please also explain what is the problem? – 6502 Jun 17 '13 at 08:45
  • I thought that there are various languages with optional s-expression based syntax: Erlang, Haskell, Prolog, ... these syntax front-ends then also support macros. – Rainer Joswig Jun 17 '13 at 23:18
  • One might also see CLIPS (a rule-based system) as a non-Lisp language with s-expression syntax. – Rainer Joswig Jun 17 '13 at 23:37