Эзотерический пример с Kernel.SpecialForms.for/1
пониманием
# removes all occurences of quotes
for <<c <- "\"hello world\"">>, c != ?", into: "", do: <<c>>
#⇒ "hello world"
Рекурсивно:
defmodule Trim do
# removes all occurences of quotes
def drop(s, what \\ <<?">>), do: do_drop(s, what, "")
defp do_drop("", _what, acc), do: acc
defp do_drop(<<?">> <> rest, what, acc),
do: do_drop(rest, what, acc)
defp do_drop(<<c :: binary-size(1), rest :: binary>>, what, acc),
do: do_drop(rest, what, acc <> c)
end
Trim.drop(~s|\"foo\"|)
Чистые эзотерические списки:
# removes opening and closing quotes only
with ["\""|s] <- :erlang.binary_to_list(~s|"foo"|),
s <- :lists.reverse(s),
["\""|s] <- s,
s <- :lists.reverse(s),
do: :erlang.list_to_binary(s)
#⇒ "foo"