[英]How to iterate through list of lists in Haskell
我正在尝试做的是制作一个程序,该程序将通过二维数字平方,并找到给出最高总数的路径。 从顶部开始,有效的移动是向下的,如果有的话,向下移动的是左/右。
我遇到的问题是我正在使用此功能:
slice :: [Int] -> Int -> Int -> [Int]
slice x i k
| i > k = []
| otherwise = (take (k-i+1) (drop (i-1) x))
和这个功能:
path :: Board -> [Int]
path [] = []
path (x:xs) = (maximum (slice x 3 5 ) : path xs
其中“板”类型是列表列表。
谁能向我解释如何使用变量而不是3和5,这样我可以获得所有连击,然后评估哪一条是最佳途径。
新手的第一次尝试:-)
path::[Board] -> Int -> Int -> [Int]
path [] y z = []
path (x:xs) y z = maximum(slice x y z) : path xs y z
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.