Haskell 我怎么知道一个单词重复了多少次?

Haskell 我怎么知道一个单词重复了多少次?,haskell,Haskell,我有以下文字:你好,世界!我爱这个世界,我需要知道世界这个词在文本中重复了多少次。我怎样才能用Haskell做到这一点?愚蠢的方法是查看列表中的每个位置,并检查它是否是世界的开始。数一数你的位置,你就完成了 Data.List> length . filter ("world" `isPrefixOf`) . tails $ "Hello world! I love this world" 2 编写代码。我们不是为了你。我们可能会尝试帮助修复您编写的代码。有什么这么难?您只需要逻辑和语法

我有以下文字:你好,世界!我爱这个世界,我需要知道世界这个词在文本中重复了多少次。我怎样才能用Haskell做到这一点?

愚蠢的方法是查看列表中的每个位置,并检查它是否是世界的开始。数一数你的位置,你就完成了

Data.List> length . filter ("world" `isPrefixOf`) . tails $ "Hello world! I love this world"
2

编写代码。我们不是为了你。我们可能会尝试帮助修复您编写的代码。有什么这么难?您只需要逻辑和语法。如果你知道语法和逻辑,你就可以编写你的程序:逻辑简单:搜索单词,如果找到了,增加一个变量,简单到这样也许单词而不是尾巴在这里也可以,也许对新手来说更容易-eye@Carsten可能这也取决于需要什么样的行为。希望任何偶然发现并花时间理解代码片段的人都能够根据自己的行为需要修改代码片段,或者能够写出一个格式良好的后续问题。@Carsten Word可能无法处理像world这样的输入,world@klappvisor这就是为什么我有可能在那里-这只是当问题要求单词而不是前缀…@Carsten我只是想它会很好地提到一些用户谁不知道haskell中的单词拆分文本的空格,而不是任何regexp或其他逻辑。当世界是另一个不应该被发现的词的一部分时,尾巴解决方案也有类似的问题。。。
import Data.List.Split(splitOneOf)

wordcount w = length . filter (==w) . splitOneOf ";.,! "

> wordcount "world" "Hello world! I love this world"
2