Eine der Personen, die sich die Zeit genommen haben, einen Kommentar zu meine andere Frage über die Clojure/LISP-Syntax wies mich darauf hin, dass ich meinen Beispielcode nicht in der Standard-LISP-Form geschrieben hatte. Er war so freundlich, den Code neu zu schreiben, und das ist eine große Hilfe. Aber es warf eine weitere Frage in meinem Kopf auf. Warum sollte dies:
(if (= a something)
(if (= b otherthing)
(foo)))
die Standard-LISP-Formatierung ist, dieser Form vorzuziehen:
(if (= a something)
(if (= b otherthing)
(foo)
)
)
was die Art und Weise ist, wie ich diesen Code naiverweise formatiert hätte, da ich aus der C++-Entwicklung komme. Ich frage mich, ob die letztere Formatierung einen Vorteil hat oder ob es sich nur um einen eingefahrenen Standard handelt (wie eine QWERTY-Tastatur). Ich will nicht argumentieren - es fällt mir nur schwer zu verstehen, warum die erste Form vorzuziehen ist. Die zweite Form hilft mir, die Codestruktur leichter zu erkennen.
0 Stimmen
Anstelle von <pre>(if (= a etwas) (if (= b anderes) (foo))) </pre> sollte man vielleicht <pre> (when (and (= a etwas) (= b anderes)) (foo)) </pre>