Size: a a a

2021 June 02

E

Elmir in pro.elixir
всем приветы! помогите плз разобраться, есть утилитка ex2ms и в ней макрос вида
## Examples
     iex> Ex2ms.fun do {x, y} -> x == 2 end
     [{{:"$1", :"$2"}, [], [{:==, :"$1", 2}]}]
 """
 defmacro fun(do: clauses) do
   clauses
   |> Enum.map(fn {:->, _, clause} -> translate_clause(clause, CALLER) end)
   |> Macro.escape(unquote: true)
 end
вопрос как блок do...end при помещении его как аргумента макроса матчится с do: clauses? какая там механика при вызове макроса?
источник

E

Elmir in pro.elixir
и что еще больше запутало, так вот это (test1 - функция сложения двух чисел)
источник

E

Elmir in pro.elixir
iex|140|>> BV2.Main.test1 2,3
5
5
iex|141|>> BV2.Main.test1 2 3
Bug Bug ..!! (SyntaxError) iex:141:18: syntax error before: "3"

iex|141|>>
nil
iex|142|>> BV2.Main.test1 2 do 3 end
Bug Bug ..!!
(ArithmeticError) bad argument in arithmetic expression: 2 + [do: 3]
   :erlang.+(2, [do: 3])
   (bv2 0.1.0) lib/bv2/main.ex:213: BV2.Main.test1/2
помогите плз пояснить как это оно так...
источник

ММ

Максим Мартынов... in pro.elixir
А зачем тебе эта либа?
источник

ММ

Максим Мартынов... in pro.elixir
Это одно и то же с точки зрения языка, все эти блоки с end преобразуются в ключи в Keyword list
источник

ММ

Максим Мартынов... in pro.elixir
Второй вызов это по сути то же самое, что и BV2.Main(test1(2(3))). Функция не может иметь название, начинающееся с числа, вот оно и выкидывает исключение.
В третьем случае ты складываешь число с массивом, и в этом тоже нет никакого смысла, вот и другое исключение
источник

E

Elmir in pro.elixir
да  c do end блоком разобрался, что оно запятую добавляте и получается что test1 вызывается с двумя агрументами
источник

ММ

Максим Мартынов... in pro.elixir
Оно не добавляет запятую, просто это реально два разных аргумента
источник

X

XÆA-XII in pro.elixir
Где можно больше почитать про GenServer и супервизоры?
источник

X

XÆA-XII in pro.elixir
На elixirschool как-то мало инфы
источник

A ß in pro.elixir
erlang org docs что-то там
источник

X

XÆA-XII in pro.elixir
То есть, без эрланга никак?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
В доке эликсира
источник

DR

Dmitry Russ (Aleksan... in pro.elixir
Ещё книга Elixir in Action - очень хороший материал про это.
источник

ع

عاصم بن حارث... in pro.elixir
"Эликсир в действии", есть такая книга.
источник

PD

Pavel Dotsenko in pro.elixir
Крутая книга, кстати!!! Много интересного там нашел
источник

AD

Anastasiya Dyachenko in pro.elixir
на медиуме очень много статей https://medium.com/search?q=genserver
источник

ع

عاصم بن حارث... in pro.elixir
источник

AB

Alex Bubnov in pro.elixir
http://erlang.org/doc/design_principles/gen_server_concepts.html
http://erlang.org/doc/design_principles/sup_princ.html
http://erlang.org/doc/design_principles/des_princ.html

но можно начать с вопроса "а зачем тебе вообще" - на эликсире обычно лепится вебня, где это всё в целом не очень нужно
источник

X

XÆA-XII in pro.elixir
Тогда зачем всё это?
источник