История изменений
Исправление theNamelessOne, (текущая версия) :
Плюс во многих ЯП с нормальными макросами можно запилить самому:
iex(1)> defmodule RWAssign do
...(1)> defmacro left ~> right do
...(1)> quote do
...(1)> unquote(right) = unquote(left)
...(1)> end
...(1)> end
...(1)> end
{:module, RWAssign,
<<70, 79, 82, 49, 0, 0, 5, 24, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 145,
0, 0, 0, 15, 15, 69, 108, 105, 120, 105, 114, 46, 82, 87, 65, 115, 115, 105,
103, 110, 8, 95, 95, 105, 110, 102, 111, ...>>, {:~>, 2}}
iex(2)> import RWAssign
RWAssign
iex(3)> 2 + 3 * 4 ~> x
14
iex(4)> x
14
iex(5)> [1, 2, 3] ~> [head | tail]
[1, 2, 3]
iex(6)> head
1
iex(7)> tail
[2, 3]
Исходная версия theNamelessOne, :
Плюс во многих ЯП с нормальными макросами можно запилить самому:
iex(1)> defmodule RWAssign do
...(1)> defmacro left ~> right do
...(1)> quote do
...(1)> unquote(right) = unquote(left)
...(1)> end
...(1)> end
...(1)> end
{:module, RWAssign,
<<70, 79, 82, 49, 0, 0, 5, 24, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 145,
0, 0, 0, 15, 15, 69, 108, 105, 120, 105, 114, 46, 82, 87, 65, 115, 115, 105,
103, 110, 8, 95, 95, 105, 110, 102, 111, ...>>, {:~>, 2}}
iex(2)> import RWAssign
RWAssign
iex(3)> 2 + 3 * 4 ~> x
14
iex(4)> x
14