PatternMetonyms.matchv-question-mark

You're seeing just the macro matchv-question-mark, go back to PatternMetonyms module for more information.
Link to this macro

matchv?(pat, expr)

View Source (macro)

view/2's equivalent to match?/2

iex> import PatternMetonyms
...> matchv?((Function.identity() -> 1), 1)
true

iex> import PatternMetonyms
...> matchv?((Function.identity() -> {1, _}), {1, 2})
true

iex> import PatternMetonyms
...> map = %{a: 1, b: 2}
...> matchv?((Map.take([:a, :b, :c]) -> %{a: _}), map)
true

iex> import PatternMetonyms
...> map = %{a: 1, b: 2}
...> matchv?((Map.take([:b, :c]) -> %{a: _}), map)
false

iex> import PatternMetonyms
...> a = 1
...> matchv?(^a, 1)
true

iex> import PatternMetonyms
...> a = 1
...> matchv?((Function.identity() -> ^a), 1)
true

iex> import PatternMetonyms
...> list = [a: 1, b: 2, a: 3]
...> Enum.filter(list, &matchv?((Function.identity() -> {:a, _}), &1))
[a: 1, a: 3]

iex> import PatternMetonyms
...> list = [a: 1, b: 2, a: 3]
...> Enum.filter(list, &matchv?((Function.identity() -> {:a, x}) when x < 2, &1))
[a: 1]

iex> import PatternMetonyms
...> matchv?(_x, 1)
...> binding()
[]