Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
From: chris.danx <chris.danx@n...>
Subject: [Caml-list] Closure & Ref
Hi,

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.


Cheers,
Chris

-------------------
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