问题标签 [erlang-shell]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3242 浏览

erlang - 为什么 io:get_line 在 erlang shell 中返回“\n”?

在 erlang shell 中使用 io:getline("prompt") 时,函数立即返回,返回值为 "\n"

但正如另一个线程中所建议的那样,正确地从 standard_io 读取以下内容。

等待用户输入并从标准 io (shell) 读取。有人提到这是一个竞争条件。谁能告诉我为什么会这样以及如何从 erlang shell 中读取值?

0 投票
1 回答
1421 浏览

erlang - 我的 Erlang 项目有多个应用程序:我应该如何启动它们?

作为一个 OTP 新手,我正在努力理解如何构建我的 Erlang 项目。到目前为止,它在 rebar 管理的 app 目录下有几个应用程序:

例如,我可以在 shell 中使用 application:start(app1) 启动 app1。毫无疑问,我可以通过 appN 重复这一点。但是有没有首选或更好的方法?比如说,我可以编写一个捆绑所有这些开始的函数吗?如果是这样,我应该把它放在哪里?

我还有其他几个问题,但将单独发布。

非常感谢,

LRP

0 投票
4 回答
1863 浏览

erlang - 从 Erlang 中的 io:format 中删除尾随 ok

我正在用 Erlang 构建一个简单的井字游戏程序。我将电路板作为字符串传递给io:format("123\n456\n789\n")并希望看到:

但是在 Erlang shell 中会io:format("123\n456\n789\n")打印:

有没有办法在没有尾随的情况下输出到控制台?

0 投票
2 回答
1083 浏览

functional-programming - 从列表中删除 nil - Erlang

我怎样才能从这个列表中删除 nils,假设我得到:

[{"some","other",[]},nil,{{"more","somemore",[]},nil,nil}]

最后,我只想从长元组中提取第一个元素并将它们放在一个列表中,例如:

[“多一点”]

0 投票
2 回答
107 浏览

erlang - 没有调用erlang方法

嗨,我有一个示例 erlang 代码,

当我跑步时

输出是:

你好世界!

减去!

17

我的疑问是为什么 15-2=13 的 AB 没有打印在控制台上?

0 投票
1 回答
849 浏览

erlang - 短路 Erlang 端口映射器守护进程

给定一个已知的 TCP 端口和远程 beam.smp 服务的名称,以及一个已知的 cookie,是否可以将 Erlang 分发协议的 Erlang Port Mapper Daemon 握手阶段短路,并直接建立一个 Erlang shell 到目标波束.smp 服务?

该协议记录在这里:

http://erlang.org/doc/apps/erts/erl_dist_protocol.html

和这里:

https://github.com/blackberry/Erlang-OTP/blob/master/lib/kernel/internal_doc/distribution_handshake.txt

但我不清楚 recv_challenge/send_challenge 身份验证是通过 Erlang Port Mapper Daemon 还是绑定到特定端口的 beam.smp 服务发生的。

感谢您的时间。

0 投票
1 回答
359 浏览

erlang - 在启动脚本中注册全局进程

我写了一个主管(如下所示)。

它只有一个我从使用中获得的子进程locations:start_link/0。我希望它能够启动一个主管并在全球范围内注册自己。这样,我可以使用global:whereis_name/1.

当我通过外壳启动主管时,它按预期工作:

然后我可以通过它的全局名称 locator_sup 找到它:

但我想使用启动脚本启动系统,所以我尝试像这样启动系统:

似乎正在调用主管的 init 函数但是当我尝试通过其全局名称查找主管时,我得到未定义

所以我的问题是,为什么只有当我从 shell 使用 start_link 时才会注册主管进程?

主管模块:

0 投票
1 回答
103 浏览

erlang - 为什么 gen_tcp 没有在 Erlang shell 中定义?

在我输入gen_然后在 erlang shell 中输入 Tab 之后,我得到gen_server, gen_event,但我没有得到gen_tcp. 如何gen_tcp在 Erlang shell 中使用?

0 投票
1 回答
706 浏览

shell - 如何在不使用 erlang shell 的情况下编译和运行此代码

如何在不使用 erlang shell 的情况下编译和运行此代码

我在 erlang 中有以下代码,它为 n-queens 问题提供了解决方案。它以皇后的数量作为参数。该程序在 erl shell 上成功运行。但是我需要在没有 shell 的情况下在 linux 终端上运行这个程序,以便我可以使用“时间”命令来测量程序的执行时间。

0 投票
3 回答
552 浏览

c - 分段错误后重新启动 Erlang 节点

我目前正在运行一个通过 Nifs 运行 C 代码的 Erlang 应用程序。但是,如果 C 代码中出现分段错误,则整个节点以及运行 Erlang 应用程序的 Erlang 虚拟机都会关闭。

如果虚拟机死机,监视 Erlang 应用程序并重新启动它的最佳方法是什么?