小编Ham*_*ani的帖子

螺纹钢和螺纹钢3有什么区别?或者erlang.mk

我是Erlang编程语言的新手.Erlang中是否有标准的构建工具?

我已经搜索了这些,不知道我应该使用哪一个.我不知道它用于什么样的场合?

erlang rebar

14
推荐指数
1
解决办法
2086
查看次数

打印出Mnesia表的最佳方法

我试过这段代码:

print_next(Current) ->
    case mnesia:dirty_next(muppet, Current) of
        '$end_of_table' ->
            io:format("~n", []),
            ok;
        Next ->
            [Muppet] = mnesia:dirty_read({muppet, Next}),
            io:format("~p~n", [Muppet]),
            print_next(Next),
            ok
    end.

print() ->
    case mnesia:dirty_first(muppet) of
        '$end_of_table' ->
            ok;
        First ->
            [Muppet] = mnesia:dirty_read({muppet, First}),
            io:format("~p~n", [Muppet]),
            print_next(First),
            ok
    end.
Run Code Online (Sandbox Code Playgroud)

但它太长了.我也可以使用dirty_all_keys然后遍历键列表,但我想知道是否有更好的方法来打印Mnesia表内容.

erlang mnesia

9
推荐指数
3
解决办法
1万
查看次数

在Erlang中,gen_server:start()和gen_server:start_link()之间有什么区别?

有人可以解释gen_server:start()和之间的区别是gen_server:start_link()什么?

我被告知这是多线程的东西.

编辑: 如果我的gen_server是从多个线程调用的,它会一次执行吗?或者它会在这些线程之间创建并发吗?

erlang erlang-otp gen-server

7
推荐指数
2
解决办法
1403
查看次数

如何将Erlang应用程序编译成可执行的二进制文件并运行它?

现在我正在学习Erlang,我对运行和测试Erlang应用程序的方式有疑问.

我们对运行和测试Erlang程序有一些看法:

  1. 我们可以运行Erlang shell并在那里测试我们的函数.
  2. 我们可以使用我们的Erlang代码编译一些文件,而不是创建.app文件,然后再次运行Erlang shell并调用application:start(AppName).

我的问题:我们可以从Erlang代码生成二进制可执行文件吗,就像C代码一样?如何在没有Erlang shell的情况下运行程序,我可以运行程序,输入一些命令,之后调用Erlang函数执行此命令?

例如,我有一个test.erl带有三个函数的module():

foo1() -> ...

foo2() -> ...

foo3() -> ...
Run Code Online (Sandbox Code Playgroud)

然后我想在终端运行程序并输入-a标志来调用函数foo1,-b标志foo2等等.

erlang

5
推荐指数
2
解决办法
2557
查看次数

如何在erlang中创建解析器

如何在erlang中创建一个解析器,它将采用一个正确形成的命题公式并将其转换为一些内部表示.

列出在erlang中创建解析器的可用工具以及使用它们的项目可能会有所帮助.

erlang parser-generator

5
推荐指数
1
解决办法
1280
查看次数

rebar3:无法访问依赖项

我试图将使用 rebar 构建的 REST API 示例转换为 rebar3 版本(http://jordenlowe.com/title/Explain_like_I_am_5_-_Erlang_REST_Framework_Cowboy)。我已添加jsxapp.src. 这可能是什么原因?在将其设为 rebar3 版本时,我还需要做些什么吗?

出现这个错误。

===> Failed to solve release:
Dependency jsx is specified as a dependency but is not reachable by the system.
Run Code Online (Sandbox Code Playgroud)

erlang

5
推荐指数
1
解决办法
904
查看次数

Erlang消息接收命令

了解这些关于Erlang消息传递行为的时间顺序的事实:

如果进程A向进程B发送两条消息,则保证两条消息按它们发送的顺序到达.

如果进程A向进程B发送消息,然后向进程C发送消息,则无法保证它们的接收顺序.

同样,如果进程A和B向C发送消息,则无法保证接收消息的顺序.

我的问题是:

如果进程A和B向进程C发送消息,当A和B在相同的(微)时间内发送消息时,具有相同的内部功能,在同一节点和同一台机器中可以发送消息,接收顺序是什么?运行并行进程?

parallel-processing concurrency erlang message-passing

3
推荐指数
1
解决办法
276
查看次数

如何通过其ID获取Erlang端口?

当我有一个Erlang进程ID时,可以使用pid/3list_to_pid/1函数(内部做同样的事情)来获得用于调试目的的进程。

Process = pid(0,4,1).
Process = list_to_pid("<0.4.1>").
Run Code Online (Sandbox Code Playgroud)

所以问题是;那港口呢?

有很多功能接口可以接受process()port()数据类型,例如register/2。因此,我需要知道是否有一种方法可以通过#Port<0.567>进程的ID(例如)来获取端口。禁止吗?如果是这样,有什么理由吗?

erlang erlang-ports

2
推荐指数
1
解决办法
462
查看次数