List.iter / OCaml

Op_m Messages postés 2 Statut Membre -  
Op_m Messages postés 2 Statut Membre -
Bonjour,
j'aimerais reconstruire la fonction preexistante List.iter en OCaml. j'ai fais quelques essais mais impossible de retrouver le bon typage, a savoir : ('a -> unit) -> 'a list -> unit = <fun>.

Voila ou j'en suis :

let rec list_iter f l = match l with
[] -> []
| e::t -> begin (f e); list_iter f t;() end;;

et on me revoi l'erreur :

"This expression has type unit but is here used with type 'a list"

Si quelqu'un peut m'aider a resoudre ce probleme qui je m'en rends compte ne doit pas etre tres complique, je lui en serait tres reconnaissant.
A voir également:

2 réponses

stephane_mc2004 Messages postés 807 Statut Membre 96
 
let rec list_iter f l = match l with 
[] -> [] 
| e::t -> f e :: list_iter f t ;; 

Signature hors-charte - Supprimée par la modération
3
Op_m Messages postés 2 Statut Membre 1
 
enfait la fonction que tu as ecrite est un List.map et non List.iter. Elle n'a pas le typage que j'aurais voulus. c'est a dire qu'elle renvoi ('a -> 'b) -> 'a list -> 'b alors que je voudrais que f renvoi un unit.
1