Я просматриваю документы по пониманию на наличие эликсира, и меня смущает этот фрагмент:
for <<c <- " hello world ">>, c != ?\s, into: "", do: <<c>>
специально, эта часть: <<c <- " hello world ">>
Что это такое? Насколько я понимаю, c <- " hello world "
- это генератор, а <<>>
- это двоичный синтаксис.Итак, если собрать это воедино, это двоичный файл генератора?Странно, хорошо, но, возможно, это похоже на понимание списка Python, например, [x for x in (1..3)]
Однако, это не выглядит так, потому что оператор не может стоять сам по себе:
iex(2)> <<c <- " hello world ">>
** (CompileError) iex:2: undefined function <-/2
(elixir) src/elixir_bitstring.erl:65: :elixir_bitstring.expand_expr/4
(elixir) src/elixir_bitstring.erl:32: :elixir_bitstring.expand/6
(elixir) src/elixir_bitstring.erl:12: :elixir_bitstring.expand/4
Если код не может стоять сам по себе, то как он работает в пределах понимания?Действителен ли он где-либо еще за пределами понимания?