私はフェニックスがテンプレートをヨードアタとしてレンダリングする方法を掘り下げています。私には奇妙に見えるリストがいくつか見つかりました。 "垂直バー"または "垂直パイプ"文字(|
)を含むリストの構文の基本ビットが欠落しているようです。ここでエリクシール:これはどのような種類のリストですか?
私はを行ういくつかの例が理解されています
# prepends 1 to the list [2, 3]
l = [1 | [2, 3]] #=> [1, 2, 3]
# matches the head and tail into variables
inspect_tail = fn ([_head | tail]) -> IO.inspect(tail) end
私が得るものを。しかしこれは何ですか?
l = ["hi" | "there"] #=> ["hi" | "there"]
頭と尾を持つリストであるように思わ:
is_list(["hi" | "there"]) #=> true
hd(["hi" | "there"]) #=> "hi"
tl(["hi" | "there"]) #=> "there"
...しかし、このようなリストを与えられた場合length(list)
機能はArgumentError
を与えます。
これは何ですか、それは何のために使用されていますか?
グーグルでは、これが「不適切なリスト」になるかもしれないと思うようになります。そうですか? –
まだユースケースを理解しようとしています。 [this article](http://www.evanmiller.org/elixir-ram-and-the-template-of-doom.html)が示すように、 ':re.replace'(' Regex.replace'と違って)は、不適切なリスト: 're.replace(" sing "、" i "、" o ")#> [" s "、" o "、| "ng"] '。私はそれが既存の文字列を再利用していることを知っていますが、なぜ結果が '[" s "、" o "、" ng "]ではないのか分かりません。 –