Drobná poznámka. Operátor === v js netestuje umístění v paměti. Funguje uplně stejně jako == až na to že typ argumentů se musí rovnat, operator == dělá konverze.
A jenom na okraj, to že wisp nepodporuje immutable struktury ho dělá úplně k hovnu.Clojure je postavené na immutable strukturách takže není tento překladač kompatibilní s ostatnim kodem... A v JS není problem udělat immutable strukturu ...
Teda, už sem čekal že se na mne sjede hejt, že wisp není clojure ale clojure-like jazyk který má sloužit k výuce a tím pádem je moje kritika bullshit, což bohužel, když se na to zpětně dívám je.
Ale ne, fajn :)
Immutabilita je vždy konvence, nemá vůbec nic do činění s běhovou platformou. I takový Haskell běží na x86 (a ARM a bůhvíčem ...) která bez problému paměť mění, no a za to že Haskell ji většinou měnit nemůže může konvence kterou jazyk vynucuje, nikoli ASM do kterého se překládá. A úplně stejně je to i s JS v tomto případě, akorát JS hraje tu roli ASM. Je to prostě na jazyku, nedovolit měnit paměť, platformě je to jedno.
Ajo takže pokud je JS chápán jako "assembler", tak to potom jo. To asi klidně půjdou odsimulovat i lazy vyhodnocení atd., což ostatně asi nějak dělá clojurescript. Ovšem musí se zaručit, že ten program nebude mít přístup o tu jednu úroveň níž.
příkladem je můj oblíbený Clojure - ten kvůli Java-interop není čistě funkcionální (není i kvůli atomům atd.), protože si klidně vytvořím jakýkoli mutable objekt Javy, což je sice prasárna, ale jde to.
No o immutable datové struktury podobné Clojure se snaží jak v klasickém ClojureScriptu, tak i (pro javascriptaře) v projektu Mori (https://github.com/swannodette/mori). Ten taky ještě chci pořádně prozkoumat, co a jak umí a neumí.
ad 1) máš pravdu, ten operátor není tak "silný" jak jsem napsal
ad 2) skutečně to není s Clojure kompatibilní, na druhou stranu ten překlad Wisp-JavaScript je hodně elegantní, takže bych ten projekt úplně nezavrhoval. Mě se dost líbí ve chvíli, kdy potřebuju na stránce s něcím malým "pohnout", do JS se mi nechce a ClojureScript je dost kanón na vrabce.