Jiri
Jiri

Reputation: 16625

Javascript to clojure

I am aware of ClojureScript - possibility to compile clojure code to javascript, but is it possible to do the reverse, take some subset of javascript code and translate it back to clojure?

Upvotes: 10

Views: 2071

Answers (5)

myguidingstar
myguidingstar

Reputation: 57

You can only do that with Chlorinejs, a subset of Clojure that share many things with javascript. https://github.com/chlorinejs/chlorine/wiki https://github.com/chlorinejs/chloride

Upvotes: 1

Jeremy
Jeremy

Reputation: 22435

I just happened to come across a JavaScript to Common Lisp transpiler called CL-JavaScript.

Upvotes: 4

Marc
Marc

Reputation: 4586

Yes, this is definitely possible and a very actionable idea. You could actually use the Rhino Javascript compiler to convert the Javascript to Java classes and could then rig something up to call the Java classes from Clojure. You don't get the source code, but you can leverage the libraries in Clojure code.

Upvotes: 4

mikera
mikera

Reputation: 106401

Yes, although it wouldn't really make sense.

Clojure -> JavaScript makes sense because:

  • JavaScript is the only suitable target language for a wide class of web applications
  • It allows effective use of the Google Closure compiler for whole program optimisation
  • Clojure is a great "source" language because of its macro features and great support for defining expressive DSLs

Clojure would be an odd choice for a target language - if you want to run on the JVM platform, it would be more natural to target Java bytecode directly.

JavaScript would also be an odd choice for a source language compiling to Clojure - if you want Clojure code, why would you not just write Clojure directly? In particular, using a (possible subset of) JavaScript would not give you easy access to all the features that make Clojure really compelling (lazy functional programming, concurrency support, macro metaprogramming , persistent data structures etc.)

Upvotes: 5

Terje Norderhaug
Terje Norderhaug

Reputation: 3689

Yes, it is possible to translate JavaScript into Clojure. Like the other dialects in the Lisp family, Clojure is well suited to build parsers and compilers for other languages.

Upvotes: 2

Related Questions