我正在嘗試編寫一個名爲split的函數,它需要一個列表並返回所有不同分割對的列表,例如,Haskell:如何返回列表中可能的分割列表
split [4,3,6] = [([],[4,3,6]),([4],[3,6]),([4,3],[6]),([4,3,6],[])]
現在我寫這
split :: [a] -> [([a],[a])]
split [] = [([],[])]
split (x:xs) = ([],(x:xs)):(zip (map (x:) (map fst split(xs))) (map snd split(xs)))
一段代碼和擁抱,我的選擇的解釋讓我這個
ERROR file:.\split.hs:3 - Type error in application
*** Expression : map snd split xs
*** Term : map
*** Type : (e -> f) -> [e] -> [f]
*** Does not match : a -> b -> c -> d
錯誤消息。我做錯了什麼?爲什麼(map snd split xs)的類型是
(a-> b - > c - > d)?
Is([4,6],[3])是否也在結果中?因爲它符合你的描述。而如果是在那裏,薩科吳的回答是不充分 – kaan 2013-02-20 11:55:05
不,這不是一個結果,我如果我的描述表明,對不起。 – lototy 2013-02-20 15:56:17