2

是否可以将 Ruby 嵌入到 Erlang 中?Yecc 会是正确的工具吗?如果可能的话,大概需要多少工时?

4

5 回答 5

10

Erlectricity 将 Ruby 暴露给 Erlang,反之亦然:

http://github.com/mojombo/erlectricity

于 2009-01-12T20:21:03.943 回答
6

Jose Valim 网址http://elixir-lang.org/有一个名为 Elixir 的东西,它可以让您编写类似于 ruby​​ 的代码并在 erlang VM 上运行它。

所以代码在很多地方看起来都很相似,比如:

iex> name = "world"
iex> "hello #{name}"
"hello world"

在许多情况下,更多的是 Erlang'y:

# function
iex> x = fn(a, b) -> a + b end
#Fun<erl_eval.12.111823515>
iex> x.(1, 2)
3

和模块=):

iex> defmodule Math do
...>   def sum(a, b) do
...>     a + b
...>   end
...> end    
iex> Math.sum(1, 2)
3

它以任何方式帮助您。我知道 Jose 在停止专注于 Rails 之后,最近又开始了大规模的工作。可能他会得到 Riak 集成和某种 Web 框架。那可能很有趣!

于 2012-03-29T14:12:07.943 回答
3

你需要更详细地解释你想要做什么。在这种情况下,“嵌入”是一个相当模糊的词。

如果您打算在 Erlang 中实现 Ruby 解析器/解释器,那么 Yecc 将是合适的,但我猜这不是您想要做的。

如果你想从 Erlang 调用 Ruby 代码,这可以通过类似于 Erlang 的jinterface应用程序用于与 Java 对话的方式来完成。(你也可以在这个主题上谷歌。)

如果不花一两个星期的工作,弄清楚应该做什么以及如何做,你就不能期望得到任何现实的估计。否则,您最终会得到“从 2 个月到两年的任何时间”,这可能不是很有帮助。

于 2009-01-12T19:42:23.100 回答
3

根据您的任务是什么,您可以做一些简单的事情,例如生成一个 ruby​​ 进程以通过 STDIN/OUT 与之对话。

于 2009-01-13T23:17:06.850 回答
1

如果你想在 Erlang 中评估一些 ruby​​ 代码,你应该准备花大约一年的时间来发布简单的代码。

Ruby 语法非常复杂,而 erlang 有一个非常不同的虚拟机。

于 2012-09-19T09:27:07.227 回答