问题标签 [erlang]

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 投票
6 回答
2427 浏览

unit-testing - 对并发 Erlang 代码进行单元测试的最佳方法是什么?

我花了一些时间在 Erlang 上,我想将 TDD 应用于我正在编写的代码。

虽然标准库中的EUnit提供了一个很好的传统单元测试框架来测试常规样式代码,但似乎没有任何东西可以专门帮助测试并发代码,这在 Erlang 中被大量使用。

请注意,我们在这里讨论的是 Erlang,它使用消息传递(而不是共享状态)在并发进程之间进行通信,因此在共享状态语言中对并发代码进行单元测试的技术可能不适用。

有人找到了在 Erlang 中测试并发代码的好方法吗?

0 投票
7 回答
7586 浏览

erlang - 出于学习目的,在 Erlang 中有哪些有趣的项目需要解决?

我最近发现了 Erlang,现在正在学习一些教程。到目前为止,我期待着将一些东西作为一个爱好项目来实际实施。我对另一个聊天服务器并不感兴趣。我想编写一些更有趣的代码(是的,我知道这是一个相当模糊的术语),这也是易于管理的,所以我可以在业余时间完成它。

有什么建议么?

编辑:该项目最好突出 Erlang 的优势(并发、分布式)。

0 投票
2 回答
3826 浏览

binary - 二进制格式,存在按位运算吗?例如。<<16#7F, 16#FF>> bsl 1

在erlang中,有对整数进行按位运算,例如:

还可以将整数打包成字节序列

是否有可能,或者是否有任何运算符或 BIF 可以对二进制打包数据执行按位运算(例如 AND、OR、XOR、SHL、SHR)?

例如(如果 bsl 处理二进制包 - 它没有):

0 投票
8 回答
9947 浏览

haskell - Haskell 用于服务器?

关于制作游戏服务器,Erlang 似乎总是作为一种“为这种事情而构建”的语言出现,它具有可扩展性和并发特性。我在 Haskell 和 Erlang 方面都没有经验,但从表面上看,它们似乎是一样的。查看 Haskell 的文档,它似乎支持多处理器可扩展性和并发性,据说 Haskell 是一种更可靠的语言,并且拥有明显更好的社区。那么,我的问题是,Haskell 是否被认为与 Erlang 所认为的服务器构建解决方案一样好?

0 投票
2 回答
2454 浏览

database - 与 Mnesia 保持关系完整性

我最近一直在研究 Erlang,我决定使用 Mnesia 来完成我的数据库工作,因为它可以毫无问题地存储任何类型的 Erlang 数据结构、轻松扩展、与列表推导一起使用等。

来自标准 SQL 数据库的大多数行可以并且应该由主键标识,通常是自动递增的整数。默认情况下,Mnesia 将行的第一个字段视为其键。据我所知,它也没有办法拥有一个自动递增的整数键。

鉴于我有这些代表我的表的虚构记录:

我认为使用用户名对于某些目的可能已经足够了,就像条目标题一样,为了识别资源,但我该如何保持完整性呢?

假设用户更改了其名称,或者条目的标题在编辑后发生了更改。如何确保我的数据仍然正确相关?在用户名发生变化时使用用户名更新每个表听起来是一个糟糕的主意,无论它是如何放置的。

在 Mnesia 中实施某种主键系统的最佳方法是什么?

另外,如果第一个字段通常是键,那么像“user_entry”这样的中间表会怎么做?否则,在 Mnesia 中表示多对多关系的更好方法是什么?

0 投票
4 回答
1349 浏览

erlang - 如何确保 mnesia 的快速启动时间

带有 mnesia/dets 的 Erlang 以崩溃后的缓慢启动时间而闻名。基本上与旧文件系统上的 fsck 问题相同。

但是我在定期关机后也遇到了缓慢的启动时间:在一台强大的机器上,大约 8 分钟的 250 MB 磁盘数据。

所以除了输入“q()”之外,我还必须在关机时做一些特别的事情?有没有办法加快启动时间?

0 投票
1 回答
934 浏览

xml - 是否有库可以在 erlang 中执行 xslt 转换?

我对 erlang 真的很陌生,我想知道如何操作 xml。

我找到了 erlsom,但我需要对 xml 进行一些简单的转换。

我正在寻找一个 xslt(甚至是 1.0)库,但我没有找到任何东西并减少了自己在 DOM 上手动进行转换,或者任何你可以调用的结构来表示 erlang 中的 xml-tree。不用说结果是我用来获得可以通过一堆行的 xslt 实现的结果的不雅致的代码。

您知道可以为我指明正确方向的代码库、示例或文档吗?

0 投票
3 回答
678 浏览

erlang - 打印命名参数

Archaelus 在这篇文章中建议,编写一个新的格式例程来处理命名参数可能是一个很好的学习练习。因此,本着学习语言的精神,我编写了一个处理命名参数的格式化例程。



一个例子:



基准:

虽然我怀疑大部分开销是由于循环造成的,因为使用一个循环调用函数会在 < 1us 内产生响应。

如果在 erlang 中有更好的基准测试方法,请告诉我。



守则:( 已根据 Doug 的建议进行了修订)

由于这是一个学习练习,我希望那些对 erlang 更有经验的人可以给我一些关于如何改进我的代码的提示。

干杯,迈克

0 投票
4 回答
1626 浏览

actionscript-3 - 与 Erlang 服务器的 Flash 通信

看来,这是一个 erlang 问题。我有这段代码来测试客户端发送数据,用 Actionscript 3 编写:

然后我有了这个用 Erlang 编写的小型服务器:

现在,无论我从客户端发送什么,我总是得到[<<0,0,0,4,0,0,0,32>>]响应。我可以尝试直接将字节写入套接字而不是整数,我得到了同样的结果。我可以写更多或更少的数据,结果相同。UTF 字符串相同的结果。即使将“4”指定为数据包头长度,我也只会得到相同的一致结果[<<0,0,0,32>>]。我不明白我在这里做错了什么。

0 投票
2 回答
2655 浏览

erlang - Erlang中的命名节点

我正在使用 5.4 文档中的分布式编程教程,并且遇到了节点名称的问题。

由于破折号,我的 MacBook 的默认名称 ( jamess-macbook) 不能很好地与 Erlang 的节点命名方案配合使用:

我确信有一种简单的方法可以解决这个问题,除了重命名我想在其上运行 Erlang 的所有机器,但我在文档中看不到它。

有什么建议么?