5

Haskell 中有一个as-pattern,它允许我们在模式匹配时引用整个变量:

foo wholeList@(head:tail) = wholeList ++ head

变量wholeList代表原始变量。

假设head["Hello"], 并且tail["World"], 那么wholeList["Hello", "World"]

head使用 as-pattern,我们可以通过连接and来避免再次构造变量tail

Elixir 中是否存在这样的功能?

4

1 回答 1

8

是的,这是可能的。只需=在您的模式中使用:

def foo(list = [h|t]), do: list ++ h
于 2014-01-04T13:16:36.220 回答