Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Re: Events, method iterator
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 1999-06-01 (15:22)
From: Jerome Vouillon <Jerome.Vouillon@i...>
Subject: Re: Events, method iterator
On Sun, May 30, 1999 at 09:44:25PM +0200, Ubik wrote:

> a) How can i get the value associated with an event (if an event actually
> "carries" a value ...) ?
> i tried to send out a function through an int->int->int channel, i
> receive it from the other side with
>     an int->int->int event, but i can't apply it ...

An event is something that may happen on a channel. You have to wait
for it to get a value from the channel. You can either wait for one
event using the function "Event.sync", wait for any of a list of
events with "select" or check if an event has already happen with

>     let paintObject x = x#paint
>     class container = object
> 	inherit shape
> 	val mutable _objs:shape list = []
> 	method paint = List.iter paintObject _objs
> 	...
>     end
>     I have to define a function for every method to iterate, in this way ?
> There's no way to define an
>     explicit function to send messages to objects ?

Yes, you need to define a function each time. But you can do it inline :
   method paint = List.iter (fun x -> x#paint) _objs

-- Jérôme