【问题标题】:Ruby in ErlangErlang 中的 Ruby
【发布时间】:2010-09-30 23:42:20
【问题描述】:

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

【问题讨论】:

    标签: ruby erlang


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      http://github.com/mojombo/erlectricity

      【讨论】:

        【解决方案3】:

        根据您的具体任务,您可以执行一些简单的操作,例如生成一个 ruby​​ 进程以通过 STDIN/OUT 与之对话。

        【讨论】:

        • 这是使 Erlang 与外部语言通信的最健壮、灵活、可调试的方法。
        【解决方案4】:

        Jose Valim 有一个叫做 Elixir 的东西 url http://elixir-lang.org/ 这让你可以编写类似于 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 框架。这可能很有趣!

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-11-02
            • 2010-11-27
            • 1970-01-01
            • 2011-12-07
            • 2010-09-16
            • 1970-01-01
            • 2012-08-21
            • 2017-12-29
            相关资源
            最近更新 更多