Ich habe mich immer gefragt, warum Douglas Crockford JavaScript mit Scheme vergleicht. Ja, JS sollte vom Designer entworfen werden. Aber neben der Unterstützung der ersten Klassenfunktion und dem lexikalischen Scoping (gebrochen), welche Eigenschaften hat JS mit Schema gemeinsam, was es zu "Lisp in C's Clothing" macht?
Eine andere Sache, die mir in den Sinn kommt, ist die allgegenwärtige Verwendung einer einzigen ubiquitären Datenstruktur in der gesamten Sprache und den Bibliotheken: cons lists im Fall von Scheme, maps ( Objekte ) im Falle von ECMAScript.
Dann gibt es nicht nur die Tatsache, dass ECMAScript über erstklassige Prozeduren verfügt, sondern dass diese Prozeduren der only Abstraktionsmechanismus sind. (Oder genauer Kapselung Mechanismus.)
Eine Sache, die auf dieser Liste hoch sein sollte, ist eine REPL. Scheint wie eine Technik, vor allem, wenn diese Repls normalerweise hinter einigen "Entwickler-Tools" versteckt sind, aber es hat einen großen Einfluss auf die Sprache. (Zum Beispiel ist es natürlich, ein echtes eval
zu haben, wenn es ein Replikat gibt, usw.) Es stellt im Grunde genommen eine dynamische Evaluierung von Code dar, der einen erstklassigen Status hat, was für JS sehr nützlich ist und wahrscheinlich viel mehr dazu beigetragen hat Erfolg als erstklassige Funktionen (die bis vor wenigen Jahren wirklich kaum genutzt wurden).
Nun, JavaScript fehlt Homoiconicity , und das ist eine der Haupteigenschaften von Lisp Dialekten.
Tags und Links javascript programming-languages functional-programming scheme lisp