药剂 : Writing Parameterized Function using & Notation

标签 elixir

是否可以使用 & 符号编写参数化函数?

这是 Dave Thomas 的 Programming Elixir 书中的参数化函数示例

title = fn (title) -> ( fn (name) -> title <> " "  <> name end ) end

mrs = title.("Mrs.")
IO.puts mrs.("Rose")

上述程序的输出是:
Mrs. Rose
[Finished in 0.6s]

可以 title使用 & 符号书写? &符号的例子如下
iex> square = &(&1 * &1)
#Function<6.17052888 in :erl_eval.expr/5>

iex> square.(8)
64

最佳答案

正如@Gazler 正确建议的那样,由于语法限制,这是不可能的,但是您可以通过部分应用获得类似的结果。这里的区别在于 title function 会直接返回一个结果,而不是返回一个函数。 mrs然后函数可以通过“预填充”第一个参数来执行部分应用。

title = &(&1 <> " "  <> &2)
mrs = &title.("Mrs.", &1)
IO.puts mrs.("Rose")

关于药剂 : Writing Parameterized Function using & Notation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31523390/

相关文章:

ssl - (UndefinedFunctionError) 函数 :ssl. cipher_suites/1 未定义或私有(private)

elixir - 如何在Phoenix框架中有选择地禁用CSRF检查

elixir - Elixir 中函数参数中的等号是什么?

Elixir 进程限制?

Elixir map 检查是否不为空且 key 存在

time-complexity - 在 Elixir 中对有序列表 O(logN) 进行二分搜索吗?

elixir - 从计划中删除 ecto 迁移

elixir - Brunch 没有为 Phoenix 1.3 项目中的 VueJS 组件编译 CSS?

elixir - Elixir 中 "!", "?", "_", "."语法是什么意思

elixir - dialyxir mix task to create PLT exits without error or creating table