3
iex(1)> quote do: f()()
{{:f, [], []}, [], []}
Хотя f()()()
не является:Почему `f()()` действительная форма в цитате?
iex(2)> quote do: f()()()
** (SyntaxError) iex:2: syntax error before: '('
Это странно, так как f()()
не компилируется.
Так что это на самом деле полезно только при использовании с 'unquote', правильно? Имеет ли смысл генерировать ошибку или предупреждение, если используется с чем-то еще, чем 'unquote'? –
Мы уже ошибаемся, если вы используете его с чем-то другим, кроме unquote. –
Я имею в виду 'quote do: f (: bla)()' можно было бы скорректировать, чтобы привести к ошибке, но 'quote do: unquote (: bla)()' конечно нет. Или я не понимаю это правильно? –