gpt4 book ai didi

elixir - 在 Elixir 中引用管道值

转载 作者:行者123 更新时间:2023-12-04 16:28:43 25 4
gpt4 key购买 nike

我想计算字符串中出现的单词数。实现是有问题的,但让我们用它来演示我的问题:

  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}

关于elixir - 在 Elixir 中引用管道值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657088/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com