English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[Caml-list] Closure & Ref
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-11-17 (19:32)
From: chris.danx <chris.danx@n...>
Subject: [Caml-list] Closure & Ref

I was toying with ocaml just now and have successfully written a 
function that takes and int that produces a function that takes an int 
to add to the original.

let prodAdd x =
    let value = ref x in
       fun y -> !value + y;;

Now I want to do a function that takes a ref to a list and returns a 
function that adds items to the list and produce a function that returns 
another that returns the list.  How do I do that?

let prod_list_acc a =
   fun x -> a := x :: !a; true;;

let return_acc a =
   fun () -> !a;;

but that gives a "unit -> int list" =.  How do you get a copy of the 
list values?

This might seem like a crazy thing to do but I am toying with an idea 
relating to a paper I read on traits.  Instead of having classes at all 
you can just have traits, closures and mutable values.


To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners