在Elixir中将函数传递给Enum.map

在Elixir中将函数传递给Enum.map,elixir,Elixir,我正在学习Elixir,我想知道是否有更好的方法将函数指针传递到Enum.map。我有以下代码: defmodule MyModule do defp greet(person) do IO.puts "Hello " <> person end def main() do people = ["Manuel Bartual", "El hijo de la Tomasa"] Enum.map(people,

我正在学习Elixir,我想知道是否有更好的方法将函数指针传递到Enum.map。我有以下代码:

defmodule MyModule do

    defp greet(person) do
        IO.puts "Hello " <> person
    end

    def main() do
        people = ["Manuel Bartual", "El hijo de la Tomasa"]
        Enum.map(people, &greet/1)
    end

end
defmodule MyModule do
defp问候(人)do
爱娥说“你好”的人
结束
def main()do
people=[“Manuel Bartual”,“El hijo de la Tomasa”]
枚举映射(人物和问候语/1)
结束
结束

它工作得很好,但我想知道是否有其他方法可以代替使用
&greet/1

更惯用的方法是:

def main do
  ["Manuel Bartual", "El hijo de la Tomasa"]
  |> Enum.map(&greet/1)
end
  • 当函数中不需要参数时,您可以选择

  • |>
    )是最常用的长生不老药特性之一。它说,取刚刚计算的结果,并调用下面的函数,将该结果作为第一个参数传递


  • 更惯用的说法是:

    def main do
      ["Manuel Bartual", "El hijo de la Tomasa"]
      |> Enum.map(&greet/1)
    end
    
  • 当函数中不需要参数时,您可以选择

  • |>
    )是最常用的长生不老药特性之一。它说,取刚刚计算的结果,并调用下面的函数,将该结果作为第一个参数传递


  • &greet/1
    (根据Jose的说法,这显然是长生不老药最好的功能)有什么问题?换句话说,你希望它看起来像什么<例如,code>Enum.map(people,fn person->IO.puts“Hello”person end)就可以了
    Enum.map(people,&greet(&1))
    也可以。实际上,这没关系,但我只是想知道这是否是惯用的方式。我刚开始服用长生不老药,这要看情况而定。如果私有函数
    MyModule.greet/1
    存在的唯一目的是用作映射器,我会选择bare
    fn person->。。。结束
    。明白了,谢谢。
    &greet/1
    (据何塞说,这显然是长生不老药最好的功能)有什么问题吗?换句话说,你希望它看起来像什么<例如,code>Enum.map(people,fn person->IO.puts“Hello”person end)就可以了
    Enum.map(people,&greet(&1))
    也可以。实际上,这没关系,但我只是想知道这是否是惯用的方式。我刚开始服用长生不老药,这要看情况而定。如果私有函数
    MyModule.greet/1
    存在的唯一目的是用作映射器,我会选择bare
    fn person->。。。结束
    。明白了,谢谢