我是Haskell的新手,我正在寫一個簡單的函數來計算字符串中子字符串的出現次數。在一個句子中計算特定單詞的出現haskell
例如:"There is an apple"
我想在句子中計算"is"
多少次,在這種情況下結果應該是1
。
這是我已經試過:
countOf :: String -> Int
countOf x = length [n | n <- words x, filter "is" x]
據我研究過它應該工作,但事實並非如此。我真的不知道該如何解決這個問題,而且不知道什麼錯誤消息我得到手段:
input:1:41:
Couldn't match expected type `Bool' with actual type `[a0]'
In the return type of a call of `filter'
In the expression: filter "a" x
In a stmt of a list comprehension: filter "a" x
謝謝你,這是真的很有幫助。我可以問你的建議,我可以在哪裏閱讀更多關於這個表達式「filter ::(a - > Bool) - > [a] - > [a]」的意思,以及其他任何我可以學習haskell的東西。在互聯網上的一些教程,但他們沒有用。 – Syngularity
@Syngularity你有沒有簽出[LYAH](http://learnyouahaskell.com/chapters)?這是真正讓我開始的教程。之後,我會推薦Real World Haskell書籍,該書也可免費在線獲取。 [Haskell School](https://www.fpcomplete.com/school)還有很多很好的教程。 – bheklilr