问题标签 [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.
erlang - Erlang - 产生进程和传递参数
我一直遇到这个。我想在不使用 MFA 表单(模块/函数/参数)的情况下生成进程并将参数传递给它们,所以基本上不必导出我想用参数生成的函数。我已经使用闭包(fun's)解决了这个问题,并且让参数只是乐趣之外的绑定值(然后我在乐趣中引用),但是它限制了我的代码结构......我看过docs 和 spawn 只有常规 spawn/1 和 spawn/3 形式,没有别的......
我知道如果不使用 MFA 表单就不可能在生成的进程中重新加载代码,但是生成的进程不是长期运行的,并且完成得相对较快,所以这不是问题(我也想在一个模块中包含所有代码级函数,子作业被放置在该函数内的 funs 中)。
非常感谢谢谢
erlang - Erlang 准备好用于商业应用了吗?
我真的很想知道 Erlang 对以下内容的支持。
支持 Windows COM。COM 支持本身涵盖了有关访问 Access、Excel 和 Word 文档的所有要求。既读又写。
PDF 生成和打印。如果可以在 Windows 打印机服务器上完成,便笺打印很容易。许多打印机除了 Windows 之外没有任何驱动程序。
还有一个很好的数据库支持,它不会使任何任务比在 SQL 服务器上做更难。Erlang Mnesia 没问题,因为在 Mnesia 上执行起来没有什么比在任何 SQL 服务器上更难的了。
我计划移植的业务应用程序将基于 Web。如果我以后能把它移植到 GUI 上会很好,但我想,对于 Erlang 来说,这样的要求可能太多了。我同意。
编辑:我想补充一点,对 MS-Office 的支持并不是什么大不了的事。一种语言只需要支持 COM。整个微软世界就在您的门前。甚至 Perl/PHP/Python/Ruby 也支持 COM。尽管这些语言都不是为 Windows 世界而生的。
compiler-construction - Erlang 编译器是如何实现模式匹配的?
我想知道通常如何实现模式匹配。例如,在 Erlang 中,您认为它是在字节码级别实现的(它有一个字节码以便它有效地完成)还是由编译器生成为一系列指令(一系列字节码)?
这是一个非常有用的东西,我只需要将它放入我正在构建的玩具语言中。
erlang - Erlang 编译器如何处理模式匹配?它输出什么?
我刚刚问了一个关于 Erlang 编译器如何实现模式匹配的问题,我得到了一些很好的回应,其中之一是编译后的字节码(通过传递给c()
指令的参数获得):
它只是简单的 Erlang 元组。我期待一些神秘的二进制东西,你猜不是。我在这里一时冲动地问这个问题(我可以查看编译器源代码,但通过额外的洞察力提出问题总是会更好),这个输出是如何在二进制级别翻译的?
比如说{test,is_tuple,{f,3},[{x,0}]}
。我假设这是一条指令,称为“测试”......无论如何,所以这个输出本质上是字节码级语言的 AST,二进制编码只是 1-1 翻译?
这一切都太令人兴奋了,我不知道我可以这么容易地看到 Erlang 编译器把事情分解成什么。
string - 如何在 Erlang 中将整数转换为字符串?
我知道 Erlang 中的字符串使用起来成本很高。那么如何转换"5"
为5
?
有没有类似的东西io:format("~p",[5])
会返回格式化的字符串而不是打印到流中?
erlang - 有没有更简单的方法来修改 Erlang 的 subsubsub 记录字段中的值?
所以我有一个相当深的记录定义层次结构:
现在我有一个辣酱玉米饼馅,我想做一个和它一样的新辣酱玉米饼馅,除了其中一个子子子记录的值。这就是我一直在做的事情。
光是想想就很痛苦。有没有更好的办法?
erlang - 如何在 Erlang 中连接两个二进制文件?
如何在 Erlang 中连接两个二进制文件?
例如,假设我有:
如何连接 B1 和 B2 以创建二进制 B3,即 <<1,2,3,4>>?
我问这个的原因是因为我正在编写代码来为某些网络协议编码一个数据包。我通过为数据包中的字段编写编码器来实现这一点,我需要连接这些字段以构建整个数据包。
也许我这样做是错误的。我应该将数据包构建为整数列表并在最后一刻将列表转换为二进制吗?
multithreading - 如果有的话,Erlang 进程如何映射到内核线程?
Erlang 以能够支持许多轻量级进程而闻名。它可以这样做是因为这些不是传统意义上的进程,甚至不是 P 线程中的线程,而是完全在用户空间中的线程。
这很好(实际上很棒)。但是,Erlang 线程如何在多核/多处理器环境中并行执行呢?当然,它们必须以某种方式映射到内核线程才能在单独的内核上执行吗?
假设是这种情况,这是如何完成的?许多轻量级进程是否映射到单个内核线程?
或者有没有其他方法可以解决这个问题?
database-design - 您如何设计一个模式来有效地查询键值数据库中的嵌套项?
我将 Mnesia 与 Erlang 一起使用,但这个问题适用于任何键值数据库,如 couchdb 等。
我试图摆脱 RDBMS 的思维过程,但我不知道如何有效地实现这种模式。
假设我有一个用户记录,他有很多 SubItemA 记录,其中有很多 SubItem B 记录,所以:
我需要对 SubItem B 运行查询。当它嵌套时这样做是否有效?我应该把它标准化,这样它会更快吗?
我听说有些人使用数据复制,所以数据既嵌套又分离,这很荒谬还是在某些情况下真的有用?
erlang - 使用 Erlang 可以发现哪些弱点?
我正在考虑将 Erlang 作为我即将进行的项目的潜力。我需要一个“高度可扩展、高度可靠”(呃,什么项目没有?)网络服务器来接受 HTTP 请求,但不能真正提供 HTML。我们有数以千计的分布式客户端(其他系统,而不是用户)将二进制数据提交到中央服务器集群以进行离线处理。响应将非常短,成功、失败、错误代码、最少数据。我们想使用 HTTP,因为它是我们穿越防火墙的最佳机会。
鉴于项目信息有限,您能否提供使用 Erlang 之类的技术可能出现的任何弱点?例如,我了解 Erlang 的文本处理能力可能会有所不足。
您的意见表示赞赏。谢谢。