J'ai un tel code en Haskell. Il remplit la liste de manière récursive. Certains paramètres "i" (tous les pairs sauf 0) sont calculés en fonction des calculs précédents.
fillIn :: Int -> Int -> [Int] -> [Int]
fillIn max_val i list
| i > max_val = list
| i == 0 = ((function i):[]) ++ (fillIn max_val (i+1) list)
| even i = (((list!!(i `div` 2)) + (i `div` 2)):[]) ++ (fillIn max_val (i+1) list)
| otherwise = ((function i):[]) ++ (fillIn max_val (i+1) list)
Il génère une erreur : Prelude.!! : index trop grand lorsqu'il essaie d'accéder à la liste à 1 ( liste !!1 ). Je ne sais pas pourquoi car lorsqu'il calcule fillIn max_val 2 list
il a fillIn max_val 1 list
fait. Savez-vous comment je peux le réparer ? Merci d'avance.