我正在阅读"编程Elixir 1.3" (PragPub)并遇到了一些对我没有多大意义的事情。在页42上,作者描述了在
中指出的闭包greeter = fn name -> (fn -> "Hello #{name}" end) end
返回的功能会记住'提供的name
参数的值。这是封闭的本质。然而,2页后他给出了以下例子:
defmodule Greeter do
def for(name, greeting) do
fn
(^name) -> "#{greeting} #{name}"
(_) -> "I don't know you"
end
end
end
我不明白为什么name
标识符固定在第一个函数头中,因为它应该传递的值是“记住的”#39;作为结束的一部分。