Thanks from me as well. This very question was my very next challenge. I would like to reuse Clojure functions from ClojureScript to achieve consistent back- and front-end password quality validation.
One potential wrinkle may be the issue of the size of the bloom filter I'm using for the dictionary word-check (built around Kyle Burton's clj-bloom code). Presumably I'll be able to encode and transmit the computed hash table and common check functions to the browser, but it will be interesting to see if it can be made more practical (with future developments taken into consideration) than simply falling back to AJAX. Regards, Paul On Tue, Aug 9, 2011 at 7:08 AM, Alen Ribic <alen.ri...@gmail.com> wrote: > Thanks Chouser for the clear explanation. > When I stepped away from the screen and took some time to actually > think, I came to a basic conclusion that you so well described; having > that Clojure code is executed at a different time to the actual code > that is targeted on the javascript vm. > > I am currently looking to utilize the `require-macros` for implement a > validation component in a web based system. The macro(s) could expand > into valid ClojureScript code, for `validation logic`, that is > accessible by both the Clojure code (the back-end) and the > ClojureScript code (the front-end). > > -Alen > > > On Aug 8, 8:37 pm, Chouser <chou...@gmail.com> wrote: > > On Mon, Aug 8, 2011 at 12:59 PM, Alen Ribic <alen.ri...@gmail.com> > wrote: > > > It seems that the only way to reference Clojure code [1] from the > > > ClojureScript namespace is via the ns require-macros keyword. > > > Is this correct and if so, why the reference to macros only and not to > > > general functions too. (I'm sure there is a good reason if it is the > > > case; I'm hoping to get a better understanding). > > > > Clojure is not available to the JavaScript runtime that is actually > > executing the ClojureScript. It is often easy to port some Clojure > > code to ClojureScript but of course in that case it's actually > > ClojureScript code with is easy enough to :require in your > > ClojureScript code. > > > > :require-macros is different because macros are only used at *compile* > > time. So you can :require-macros to pull in a Clojure namespace, and > > those Clojure macros can use any Clojure functions they want to, but > > that all happens while the ClojureScript is being compiled. The > > macros must produce valid ClojureScript code so that it can be > > compiled to JavaScript, at which point it has lost all access to > > Clojure and must make do with ClojureScript and JavaScript functions. > > > > --Chouser > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en