Haskell 中有一个as-pattern,它允许我们在模式匹配时引用整个变量:
foo wholeList@(head:tail) = wholeList ++ head
变量wholeList
代表原始变量。
假设head
是["Hello"]
, 并且tail
是["World"]
, 那么wholeList
是["Hello", "World"]
。
head
使用 as-pattern,我们可以通过连接and来避免再次构造变量tail
。
Elixir 中是否存在这样的功能?