Haskell на JVM?
Мне интересно, есть ли способ заставить Haskell работать на JVM (скомпилирован или интерпретирован)?
Существует JHaskell на Sourceforge, но этот кажется пустым и мертвым.
GHC использует LLVM в качестве компилятора. Было бы хорошей идеей или возможно скомпилировать LLVM для Java-байт-кода? Или, может быть, использовать другой компилятор?
Ответы
Ответ 1
Вы можете изучить Frege. Цитата из этой страницы:
"Frege - нестрогий, чистый функциональный язык программирования в духе Haskell".
"Программы Frege скомпилированы в Java и запускаются в JVM".
Основываясь на кратком прочтении спецификации языка, Фреге кажется почти клоном Haskell. Возможно, фраза "в духе Haskell" проста, чтобы установить правильное ожидание.
Ответ 2
Единственный язык, который я знаю, который близок к haskell в JVM, является CAL. CAL сильно зависит от haskell, но у него нет всех функций haskell. Система типов похожа на Haskell 98, а синтаксический сахар, такой как обозначение do
отсутствует.
Здесь сравнение Haskell и CAL: CAL для программистов Haskell
Плагин eclipse очень полирован и полезен.
Обратите внимание, что CAL является частью структуры Open Quark.
Ответ 3
Существуют большие, но непреодолимые препятствия для создания GHC для JVM:
http://www.haskell.org/haskellwiki/GHC:FAQ#Why_isn.27t_GHC_available_for_.NET_or_on_the_JVM.3F
(У вас есть запасной год или два, чтобы это произошло?)
Ответ 4
Haskell прекрасно работает на JVM. См. Eta, проект, который обеспечивает полный GHC 7.10.3 Haskell на JVM с безопасным Java-взаимодействием.