Elixir和Haskell的互操作性

时间:2018-04-27 10:38:03

标签: haskell elixir interop otp

作为处理并发问题的平台,Elixir / OTP似乎是最适合的解决方案。

在使用Web界面编写应用程序时,请考虑我想要使用其他函数语言(即haskell)来推理和解耦应用程序逻辑的情况(由于其在编译时高级检测错误等优点,静态打字等)。然后,我将使用GenServer处理并发,并使用Phoenix.Channel附加Web界面。

使用NIF s甚至可以进行此设置吗?此外,是否会保持真正的并发性?我不确定我是否遵循了正确的推理路线,但是能否根据GenServer要求生成新的haskell流程,并且两者能否有效沟通?

1 个答案:

答案 0 :(得分:2)

这种设置当然可以使用NIF和GHC的FFI以及少量样板written in C。但NIFs are best used for short synchronous computations with no side effects我觉得这不是这些操作的原因。

对于应用程序的Haskell部分,使用C Nodes可能会更好。你发现的大多数文档都是针对Erlang而不是Elixir,但是如果Elixir易于与Erlang互操作,它应该是非常直接的(某人even written an example) 。大部分艰苦的工作都与编写Haskell" C Node"有关,粗略地看一眼hackage和github什么都没有。