Essendo un novizio di Lisp mi chiedo se la sintassi Lisp possa essere "riparata"?Fixing Lisp Sintassi
Alcuni dicono che la sintassi in Lisp è uno dei suoi maggiori punti di forza. Non capisco questo.
Non è possibile sostituire le parentesi "ovvie" con una combinazione di spazi bianchi, nuove linee e rientri? Proprio come in Python?
Mi sembra che le parentesi siano i caratteri più utilizzati nel codice Lisp. Mi chiedo se sia vero - ma se lo è, non è questo un suggerimento, che c'è qualche ridondanza nella sintassi?
C'è una risposta semplice alla domanda: perché tante parentesi?
Ad esempio:
(defun factorial (x)
(if (= x 0)
1
(* x
(factorial (- x 1)))))
Perché non:
defun factorial (x)
if (= x 0)
1
* x
factorial
- x 1
esempio chiudere le parentesi alla fine della riga e aprirle sempre su nuove linee. Solo il 1 sarebbe ambiguo - è 1 o (1) - ma potremmo introdurre un'eccezione - i token singoli non sono "elencati".
Potrebbe funzionare?
Edit:
Grazie a tutti! Vedo ora ci sono alcuni links al lispin site.
cosa si sta parlando non è la sintassi, è la punteggiatura. La sintassi sarebbe (a b c) o (a c b) la decisione del tipo. – vrdhn
Il mio regno per una parola chiave "altro"! – marcus
@marcus È sempre possibile utilizzare defmacro per un if/else che accetta un'altra parola chiave; tutto quello che devi fare è non espandere mai il parametro 'else', solo le due forme del corpo. – Skrylar