我是函數式編程和語言haskell的新手。我試圖根據謂詞函數確定列表中最長連續的一系列元素的長度。該功能看起來是這樣的:Haskell列表中元素的最長連續系列
longestSequence :: (a -> Bool) -> [Int] -> Int
當我這樣稱呼它:
longestSequence (\x -> x >= 10) [1,44,33,22,2,3,55,66,66,77,88,99]
應該給我的解決方案6
。
我的解決辦法,直到卻又是:
longestSequence :: (a -> Bool) -> [a] -> Int
longestSequence p [] = 0
longestSequence p (x:xs)
| (p x) = 1 + (longestSequence p xs)
| otherwise = longestSequence p xs
任何提示或如何解決這個問題的想法?
它爲什麼要給你6,而它給你什麼? –
我想我得到了規範:它是所有滿足謂詞的最長連續系列元素的長度。 – luqui
隨着我的解決方案,我得到9,因爲如果謂詞爲真,我正在計算所有項目 – Oni1