Sto leggendo di LISP.
Capisco come funziona la notazione con prefisso ad un certo livello, ma mi chiedevo se ci fossero dei trucchi per renderla intuitiva.
Sto leggendo di LISP.
Capisco come funziona la notazione con prefisso ad un certo livello, ma mi chiedevo se ci fossero dei trucchi per renderla intuitiva.
Risposte:
Leggere mentalmente da sinistra a destra come lingua parlata con i verbi appropriati può aiutare. Ad esempio (+ 3 2) potrebbe essere "aggiungi tre e due". Nel caso più generale, puoi dire "esegui $ operazione su $ operandi". Applicato allo stesso caso: "Esegui l'operazione di aggiunta su tre e due".
( = 1 2 )
e( > 4 2 )
Trucchi? Per che cosa?
Non ti sembra ancora intuitivo perché il tuo parser mentale non è abituato. Andrà meglio se lo usi e lo rileggi ancora e ancora.
Potresti pensarlo come una sorta di chiamata di funzione:
(operator operand1 operand2 ...)
Non c'è niente di molto speciale al riguardo. Se sovraccarichi gli operatori in C ++ (e in molti altri linguaggi che lo consentono) spesso devi definire questo tipo di funzione esattamente in questo modo:
MyClass operator+(MyClass const& x, MyClass const& y);
Molte lingue usano un mix di prefisso, infisso e persino postfisso.
Lisp usa solo il prefisso - per impostazione predefinita. Se sin (x) è intuitivo dalla matematica, allora (sin x) non è lontano. Se move (cane, casa) è una procedura tradizionale, allora in Lisp lo è (sposta cane a casa).
Lisp non fa alcuna eccezione per la matematica e gli ossequi +, -, * e altri come le normali chiamate di funzione.