Javascript для закрытия - PullRequest
       16

Javascript для закрытия

9 голосов
/ 22 июля 2011

Мне известен ClojureScript - возможность компилировать код clojure в javascript, но возможно ли сделать обратное, взять некоторое подмножество кода javascript и перевести его обратно в clojure?

Ответы [ 5 ]

5 голосов
/ 27 июля 2011

Да, хотя это не имеет смысла.

Clojure -> JavaScript имеет смысл, потому что:

  • JavaScript - единственный подходящий целевой язык для широкого класса вебприложения
  • Это позволяет эффективно использовать компилятор Google Closure для оптимизации всей программы
  • Clojure - отличный исходный язык из-за его макрофункций и отличной поддержки для определения выразительных DSL

Clojure был бы странным выбором для целевого языка - если вы хотите работать на платформе JVM, было бы более естественным напрямую ориентироваться на байт-код Java.

JavaScript также был бы странным выборомдля исходного языка, компилируемого в Clojure - если вам нужен код Clojure, почему бы вам не написать непосредственно Clojure?В частности, использование (возможного подмножества) JavaScript не даст вам простого доступа ко всем функциям, которые делают Clojure действительно привлекательным (ленивое функциональное программирование, поддержка параллелизма, макропрограммирование макросов, постоянные структуры данных и т. Д.)

4 голосов
/ 03 апреля 2012

Мне довелось столкнуться с транспортом JavaScript для Common Lisp под названием CL-JavaScript .

4 голосов
/ 02 апреля 2012

Да, это определенно возможная и очень действенная идея.На самом деле вы можете использовать Rhino Javascript компилятор для преобразования Javascript в классы Java, а затем можете что-то настроить для вызова классов Java из Clojure.Вы не получаете исходный код, но вы можете использовать библиотеки в коде Clojure.

2 голосов
/ 01 марта 2013

Вы можете сделать это только с Chlorinejs, подмножеством Clojure, которые разделяют многие вещи с javascript. https://github.com/chlorinejs/chlorine/wiki https://github.com/chlorinejs/chloride

2 голосов
/ 22 июля 2011

Да, возможно перевести JavaScript в Clojure. Как и другие диалекты в семействе Lisp, Clojure хорошо подходит для создания синтаксических анализаторов и компиляторов для других языков.

...