Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 let rev_fold2 f init l1 l2 = let rec helper init l1 l2 = match l1 , l2 with | [] , [] -> Some init | a1::l1 , a2::l2 -> helper (f a1 a2 init) l1 l2 | _ , _ -> None in helper init l1 l2 (* not tail recursive *) let fold2 f init l1 l2 = let rec helper l1 l2 = match l1 , l2 with | [], [] -> Some init | a1::l1 , a2::l2 -> ( match helper l1 l2 with | None -> None | Some t -> Some (f a1 a2 t) ) | _ , _ -> None in helper l1 l2
Partager