Rechercher : dans
Par :

List.iter / OCaml

Dernière réponse le 19 oct 2009 à 20:10:38 Op_m, le 19 oct 2009 à 13:02:07 
 Signaler ce message aux modérateurs

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.

Configuration: Windows XP Internet Explorer 7.0

Meilleures réponses pour « List.iter / OCaml » dans :
Introduction à la STL en C++ (standard template library) VoirIntroduction Principales classes de la STL std::pair std::list std::vector std::set std::map Les iterators iterator et const_iterator reverse_iterator et const_reverse_iterator Les algorithmes ...
[Caml] Page, doc et tutoriaux officiels VoirPage d'accueil anglais Page d'accueil français Documentation Caml light Ocaml Distributions Ocaml Caml-light
Télécharger Ezine List Verifier VoirLes adresses email de vos contacts peuvent changer du jour au lendemain et ne plus être valide. Ezine List Verifier est un programme qui permet de vérifier en toute simplicité la validité des adresses e-mail dans une liste de diffusion. Il fonctionne...
Télécharger ThinkingRock VoirThinkingRock est un logiciel de TO-DO list (liste de chose à faires) évolué. Il permet de prendre des notes en vrac, puis de les organiser par la suite (par projet, par contexte, date de réalisation, etc.) Ce logiciel est basé sur la...
Listes de diffusion (mailing lists) VoirNotion de liste de diffusion Une liste de diffusion (en anglais mailing-list) est un des services les plus couramment utilisés sur internet, permettant à un expéditeur d'envoyer un message à un ou plusieurs destinataires. Le courrier électronique a...
Conteneurs de séquence - list Voirlist Pour utiliser un conteneur list, vous devez inclure le fichier en-tête au début du programme et travailler dans l’espace de noms std. Généralement, la classe list est implémentée sous la forme d’une liste doublement chaînée. Elle fournit...

1

stephane_mc2004, le 19 oct 2009 à 16:20:21
  • +1

let rec list_iter f l = match l with
[] -> []
| e::t -> f e :: list_iter f t ;; 
TOUT problème a une solution!
Visitez ce merveilleux site www.lapuissancedelevangile.toile-libre.org

Répondre à stephane_mc2004

2

 Op_m, le 19 oct 2009 à 20:10:38

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.

Répondre à Op_m
Collection CommentÇaMarche.net