语法错误定义函数名为"in"

Ril*_*ins 1 elixir

如何定义名为的函数in?显而易见的方法会产生语法错误:

iex(1)> defmodule MyModule do
...(1)>   def in do
...(1)>   end
...(1)> end
** (SyntaxError) iex:2: syntax error before: do
Run Code Online (Sandbox Code Playgroud)

这是不可能的,因为这in是一个保留字?

Dog*_*ert 9

in不能def直接使用,因为它是一个运算符,但Elixir中的函数可以有任何可以转换为原子的名称,并且:in肯定是一个有效的原子.可能有另一种方法可以做到这一点,但我知道的唯一方法是使用unquote(:in)函数名称:

iex(1)> defmodule A do
...(1)>   def unquote(:in)(), do: :ok
...(1)> end
iex(2)> A.in
:ok
Run Code Online (Sandbox Code Playgroud)