我有列表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