如何映射函数以在列表内的列表上操作? 以下是我正在试图做的一个例子,但我只是作为一个普遍问题提出问题。提前致谢!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'? –