Мне интересно, есть ли способ заставить Haskell работать на JVM (скомпилированный или интерпретируемый)?
На Sourceforge существует JHaskell, но этот кажется пустым и мертвым.
GHC использует LLVM как серверную часть компилятора. Было бы неплохо или возможно скомпилировать LLVM в байт-код Java? Или, может быть, использовать другой бэкэнд компилятора?
haskell
jvm
jvm-languages
frege
Jeha
источник
источник
recur
).GOTO
, которые можно использовать для реализации TCO. Или вы используете батуты. Или вы вообще не используете стек вызовов JVM, а просто реализуете свой собственный. Причина, по которой Clojure и Scala предоставляют только ограниченную совокупную стоимость владения (в основном, оптимизирована только хвостовая рекурсия ), заключается в том, что они хотят использовать стек вызовов JVM для обеспечения совместимости и производительности. Как сказал Рич Хики, дизайнер Clojure: взаимодействие, скорость, совокупная стоимость владения - выберите два.Ответы:
Вы можете исследовать Фреге . Цитата с той страницы:
Если взглянуть на спецификацию языка вкратце, Frege выглядит почти клоном Haskell. Возможно, фраза «в духе Haskell» проста и предназначена для правильного ожидания.
источник
Haskell прекрасно работает на JVM. См. Eta , проект, который переносит полную версию GHC 7.10.3 Haskell на JVM с типобезопасным взаимодействием с Java.
источник
Единственный язык, который я знаю, близкий к haskell в JVM, - это CAL. CAL в значительной степени основана на haskell, но не имеет всех функций haskell. Система типов похожа на Haskell 98, а синтаксический сахар похож на
do
нотация, .Вот сравнение Haskell и CAL: CAL для программистов на Haskell
Плагин eclipse очень доработан и полезен.
Обратите внимание, что клиентская лицензия является частью платформы Open Quark.
источник
Существуют большие, но преодолимые препятствия на пути создания GHC для JVM:
http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F
(У вас есть запасной год или два, чтобы это произошло?)
источник