macpato v0.1.2
Macpato
iex> import Macpato
...> expr = quote do
...> fn a, b, c -> a + b + c end
...> end
...> case expr do
...> macpato(fn _, b, _ -> _ end) -> :b_is_second_arg
...> _ -> :dunno
...> end
:b_is_second_arg
iex> import Macpato
...> expr = quote do
...> fn a, b, c -> a + b + c end
...> end
...> case expr do
...> macpato(fn _, _, _({name, _, _}) -> _ end) -> name
...> end
:c
iex> import Macpato
...> expr = quote do
...> fn a -> a + 22 end
...> end
...> x = 22
...> case expr do
...> macpato(fn _ -> _ + _(^x) end) -> :good
...> end
:good
iex> import Macpato
...> expr = quote do
...> fn a, b, c -> x end
...> end
...> case expr do
...> macpato(fn _(@args) -> _ end) -> length(args)
...> end
3