4> abs(1).
1
5> X = abs.
abs
6> X(1).
** exception error: bad function abs
7> erlang:X(1).
1
8>
是否有什么特别的原因,当我用变量调用函数时必须使用模块名?这对我来说并不奏效,因为,有一件事,它只是太多的句法垃圾,让我的眼睛流血。另一件事,我计划在调用函数进行列表,像(把我的头顶部):如何用变量调用Erlang函数?
[X(1) || X <- [abs, f1, f2, f3...]].
试图钉在这里的各种模块的名称将会使冗长通过屋顶,当时我所做的全部工作就是减少冗长。
编辑:看这里:http://www.erlangpatterns.org/chain.html这家伙已经做了一些管道转发功能。他正在以上述方式调用函数,但是当我尝试使用它时,他的代码不起作用。但是据我所知,这个人是一位经验丰富的Erlang程序员 - 我看到他在一次会议上发表了一些主题演讲或其他内容(我在网上看到了这一点)。
这种事情曾经工作过,但不再是?当然有一种方法可以做我想做的事情 - 调用这些功能时没有所有的冗长和样板。
编辑:如果我在阅读文档的权利,这似乎在暗示,我在上面的例子应该工作(第8.6节)http://erlang.org/doc/reference_manual/expressions.html
'X = ABS,X(1).'不起作用,因为没有按二郎” t考虑一个原子绑定到一个变量的函数。 'X = erlang,Y = abs,X:Y(1).'应该可以工作。分隔两部分的冒号告诉Erlang它是一个函数。 –