4 ms·
> Scheme - as was mentioned in this thread, is one such standard, along with Common Lisp. Then see the Scheme standards. They include a syntax definition. > T
by lispm 3y ago
> Scheme - as was mentioned in this thread, is one such standard, along with Common Lisp.
Then see the Scheme standards. They include a syntax definition.
> The comment chain is discussing if such a thing would be valid in Lisp - and, in some dialects (such as Scheme) it is.
Lisp is not a defined language, thus you can assume anything.
My point is: Lisp dialects have syntax. This syntax is usually defined on top of s-expressions. S-expressions also have a syntax, but this syntax usually (there are exceptions) describes only data types (lists, conses, numbers, strings, symbols, arrays, records/structures, bit vectors, pathnames, ...) and not the actual programming language with its operators (functions, macros, special operators) & their way to define and invoke them.
Example: The LET operator in various Lisp dialects there have a specific syntax. This syntax is not the syntax of simple function calls like (operator arg0 ... args).
R7RS small defines this syntax (and also calls it syntax):
(let ⟨bindings⟩ ⟨body⟩)
(let ⟨variable⟩ (⟨binding spec⟩*) ⟨tail body⟩)
⟨Bindings⟩ has the form ((⟨variable1⟩ ⟨init1⟩) ...)
If you write let forms which don't use this syntax, then they are not valid R7RS Scheme let forms, even though they are valid s-expressions.