[英]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.