Posez votre question Signaler

List.iter / OCaml

Op_m 2Messages postés 18 octobre 2009Date d'inscription - Dernière réponse le 19 oct. 2009 à 20:10
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.
Lire la suite 

List.iter / OCaml »

2 réponses
Réponse
+2
moins plus
let rec list_iter f l = match l with 
[] -> [] 
| e::t -> f e :: list_iter f t ;; 

Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé « List.iter / OCaml » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook