如何映射函數以在列表內的列表上操作? 以下是我正在試圖做的一個例子,但我只是作爲一個普遍問題提出問題。提前致謝!Haskell:將函數映射到列表中
現在,我試圖將函數映射到一個列表的每個列表上(由itrCol xs返回)。
evalChange xs = map change $ itrCol xs
其中itrCol返回列表的列表,其中每個包含列表是列。
itrCol xs = [getCol x xs | x <- (take (width xs) (iterate (\x -> (x + 1)*1) 0))]
getCol名單列給列索引
getCol :: Int -> [t] -> [t]
和變化的列表:
change [] = []
change [x] = [x]
change [x,y] = [x,y]
change (x:y:z:ws) | x == y && y == z = 0 : y*(-1) : 0 : change ws
change (x:xs) = x : change xs
不要忘記接受你的問題的答案=)(通過點擊答案上的綠色檢查圖標) –
你在這裏列出的代碼是否給你任何錯誤信息?如果是這樣,他們是什麼?如果不是,那你到底在問什麼?我看到的唯一錯誤是,當你可能意味着'length'時,你使用了'width'? –