Is there a way that we can reference the whole variable while in pattern matching of Elixir?
elixir, pattern-matching
Solution
Yes, this is possible. Just use `=` in your pattern:
def foo(list = [h|t]), do: list ++ h
Problem
There is an as-pattern in Haskell, which allows us referencing the whole variable while in pattern matching: ``` foo wholeList@(head:tail) = wholeList ++ head ``` The variable `wholeList` represents the original variable. Assuming that `head` is `["Hello"]`, and `tail` is `["World"]`, then `wholeList` is `["Hello", "World"]`. Using as-pattern, we can avoid constructing the variable again by concatenating `head` and `tail`. Does such feature exist in Elixir?