我正在使用Haskell进行一个小项目。我想计算一个段落或几个句子中的单词数,以及根据 牛津英语语料库(OEC)排名。
我有一些代码可以工作,但是我是Haskell的新手,需要一些帮助。
<your code here>
text = "the best book in the world is harry potter. my favourite author is
JK Rowling."
main = do
let wordCount = toWordCount text
putStrLn "Report:"
putStrLn ("\t" ++ (show $ length wordlist) ++ " words")
putStrLn ("\t" ++ (show $ countCommonWords wordlist) ++ " common words")
预期结果应该是这样
Report:
15 words
5 common words
希望帮助我开始使用这种新语言。
谢谢
到目前为止,我唯一能做的尝试是
import Data.List (nub)
import Data.Char (toLower)
toWordCount ns xs = map (\x -> length (filter (==x) xs)) ns
nubl = nub . map (map toLower) -- to lowercase
wordCount ws = zip ns (countCommonWords ns ws)
where ns = nubl ws
这是我所做的最佳尝试,任何解决方案都将有所帮助
答案 0 :(得分:3)
由于您是Haskell和StackOverflow的新手,所以让我给您一些提示。完整的解决方案取决于您。
is!
与is
不同。检查filter
功能words
Data.List
库,您会发现有用的功能。如果您堆积如山,请更新问题并发表您的尝试