Rendre une liste et modifier une référence en même temps
Bonjour,
je dois écrire une fonction réalisant l'addition de deux nombres définis par une une liste de chiffres.
Voilà ce que j'ai fait, mais comme je le craignais ça ne marche pas
let rec addition n1 n2 =
let retenue = ref 0
in
match (n1 , n2) with
([] , []) -> []
|([] , t::q) -> (t + !retenue):: (addition [] q)
|(t::q , []) -> (t + !retenue):: (addition [] q)
|(t1::q1 , t2::q2) -> (t1+t2 mod 10 + !retenue):: (addition q1 q2);
retenue:= ( t1+t2 - (t1+t2 mod 10) )/10
;;
retenue:= ( t1+t2 - (t1+t2 mod 10) )/10
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Cette expression est de type unit,
mais est utilisée avec le type int list.
Cette façon de faire est-elle impossible ?
Merci !