LINUX.ORG.RU

История изменений

Исправление 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