[Haskell] Trying to get a Composite design pattern to work
Asfand Yar Qazi
ayqazi at gmail.com
Mon Mar 13 16:26:08 EST 2006
I'm trying to implement hierarchical states in Haskell, following on from my
work at doing them in C++.
Here's what I've got so far:
data StateNode a = CompositeState [ StateNode a ] | State a
stateslist :: StateNode a -> [a]
stateslist(State x) = [x]
stateslist(CompositeState xs) = {- return list of objects of type a -}
The following give errors (as they should)
-- stateslist(CompositeState xs) = [ stateslist(x) | x <- xs ]
-- stateslist(CompositeState xs) = map stateslist xs
You see what I'm trying to do? This is how I want it to behave:
sm1 = CompositeState [ State 1, State 2, State 3 ]
stateslist(sm1)
=> [1, 2, 3]
How can I get this to work? My mind has just gone all wobbly!
Thanks
More information about the Haskell
mailing list