使用Elixir的简写符号与多体匿名函数

给定Elixir函数add1 = fn a – >一端,我知道可以用简写符号表示为add1 =&(& 1 1)

有没有办法使用多体功能的速记符号?例如,以下函数返回两个数字中的较大者.

max = fn
  a, b when a > b -> a
  _a, b -> b
end

是否可以使用Elixir的简写表示法来表达这个匿名函数?

最佳答案

max = &
  case &1 > &2 do
    true -> &1
    false -> &2
  end

我不认为这是一种速记形式.

通用解决方案将把所有参数放在一个案例中:

max = &
  case {&1, &2} do
    {a, b} when a > b -> a
    {a, b} -> b
  end

但这只会让它更长.

点赞