我想计算字符串中单词出现的次数。实现是有问题的,但让我们用它来演示我的问题:
def count(sentence) do
words = String.split(sentence)
occurrences = Enum.map(words, fn w -> {w, Enum.count(words, &(&1 == w))} end)
Map.new(occurrences)
end
我想获得与上面相同的结果,但使用管道而不是中间结果变量:
def count(sentence) do
sentence
|> String.split
|> Enum.map(fn w -> {w, Enum.count(???)} end)
|> Map.new
end
是否可以引用 Enum.count 函数中的管道输入值?或者我必须使用中间变量?
您可以在管道中放置一个匿名函数:
def count(sentence) do
sentence
|> String.split
|> (fn words -> Enum.map(words, fn w -> {w, Enum.count(words, &(&1 == w))} end) end).()
|> Map.new
end
iex(1)> count("foo bar baz foo")
%{"bar" => 1, "baz" => 1, "foo" => 2}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)