我有列表Int
列表,我需要添加一個Int
值列表中的最後一個列表。我怎樣才能做到這一點?我嘗試低於Haskell。列表清單的問題
f :: [[Int]] -> [Int] -> Int -> Int -> Int -> [[Int]]
f xs [] cur done total = [[]]
f xs xs2 cur done total = do
if total >= length xs2 then
xs
else
if done == fib cur then
f (xs ++ [[]]) xs2 (cur + 1) 0 total
else
f ((last xs) ++ [[xs2!!total]]) xs2 cur (done + 1) (total + 1)
的問題是: 我們詮釋
列表A
而且我們需要slpit它N
名單B_1 ,..., B_n
的B_i
長度爲第i個Fibonacci數。
如果我們(在我的代碼xs2
)具有列表[1 , 2 , 3 , 4 , 5 , 6 , 7]
結果應該是[[1] , [2] , [3 , 4] , [5 , 6 , 7]]
這我不清楚你的目標是做什麼。在這裏做什麼'cur','done'和'total'? –
@WillemVanOnsem我懷疑大部分代碼是寫成紅鯡魚。從最後一行看這段代碼,'((last xs)++ [[xs2 !! total]])',並將其與所問的問題進行匹配,這似乎很清楚RicUfa的困惑。這似乎有點棘手,解釋清楚的錯誤(並解釋清楚如何解決),雖然... –
這是一個問題的附加參數。我需要我需要添加'xs2!總數「到」最後xs「。 – RicUfa