8
为什么Elixir中有两种功能?
我正在学习Elixir,想知道为什么它具有两种类型的函数定义: 在模组中定义的函式def,使用myfunction(param1, param2) 用定义的匿名函数fn,使用调用myfn.(param1, param2) 仅第二种函数似乎是一类对象,并且可以作为参数传递给其他函数。模块中定义的功能需要包装在中fn。otherfunction(myfunction(&1, &2))为了使它变得简单,有一些语法糖看起来像,但是为什么首先需要它?我们为什么不能做otherfunction(myfunction))呢?是否只允许像Ruby中那样不带括号地调用模块函数?似乎从Erlang继承了此特性,Erlang也具有模块功能和乐趣,那么它实际上是否来自Erlang VM在内部的工作方式? 拥有两种类型的功能并从一种类型转换为另一种类型以将其传递给其他功能,会有什么好处?调用函数有两种不同的表示法是否有好处?