[Haskell-cafe] Execution Contexts
Benjamin Franksen
benjamin.franksen at bessy.de
Sun Nov 28 11:29:06 EST 2004
On Sunday 28 November 2004 13:53, Keean Schupke wrote:
> ... here is an example object
> in actuall Haskell code using the HList library...
>
> >point = do
> > x <- newIORef 0
> > returnIO $ mutableX .=. x
> > .*. getX .=. readIORef x
> > .*. moveD .=. (\d -> modifyIORef x ((+) d))
> > .*. emptyRecord
>
> And here's the object in use:
> >myFirstOOP = do
> > p <- point
> > p # getX >>= print
> > p # moveD $ 3
> > p # getX >>= print
>
> As you can see no lifting or awkwardness involved... the syntax looks
> very much like the OCaml example it was ported from.
Very nice. This would be enough for single threaded programs and as long as
the local state is simple.
I think it would get quite awkward as soon as you want to provide
- more mutable members
- synchronized access + asynchronous methods
(i.e. _reactive_ objects)
I am ready to be proved wrong, though.
Ben
More information about the Haskell-Cafe
mailing list