Совместимость эликсира и хаскеля - PullRequest
0 голосов
/ 27 апреля 2018

Elixir / OTP, как платформа для решения одновременных проблем, представляется наиболее подходящим решением.

При написании приложения с веб-интерфейсом рассмотрите случай, в котором я хочу рассуждать, и отделите логику приложения, используя другой функциональный язык - а именно haskell (благодаря таким преимуществам, как расширенное обнаружение ошибок во время компиляции, статическая типизация и т. д.). Затем я обработал бы параллелизм, используя GenServer s, и подключил бы веб-интерфейс, используя Phoenix.Channel s.

Возможна ли эта настройка даже при использовании NIF с? Кроме того, будет ли поддерживаться истинный параллелизм? Я не уверен, что я придерживаюсь правильной линии рассуждений здесь, но сможет ли новый процесс haskell быть порожденным в соответствии с GenServer требованиями, и смогут ли они эффективно общаться?

1 Ответ

0 голосов
/ 27 апреля 2018

Эта настройка, безусловно, возможна с использованием NIF и FFI GHC с небольшим количеством шаблонного , написанного на C . Но NIF лучше всего использовать для коротких синхронных вычислений без побочных эффектов , и я чувствую, что это не те операции.

Вам, вероятно, будет лучше с C узлами для частей приложения на Haskell. Большая часть документации, которую вы найдете для этого, будет для Эрланга, а не для Эликсира, но, учитывая простое взаимодействие Эликсира с Эрлангом, она должна быть довольно простой (чей-то даже написал пример ). Большая часть тяжелой работы будет связана с написанием Haskell "C Node", для которого беглый взгляд на hackage и github ничего не дает.

...