Hey Yotam,
Pattern matching clauses evaluate from left to right. You can get the behavour you're after by swapping the arguments in the tuple:
case (stop, infi) of
(Just _, Nothing) -> 1
(_, _) -> 2
Evaluates to 2
_______________________________________________Hi,After reading "Push-Pull Functional Reactive Programming" I had an idea about deciding which, of two events, comes first. Instead of using forkIO, I tried something like the following:infi :: Maybe Intinfi = infistop :: Maybe Intstop = Nothingtest :: Inttest = case (infi, stop) of(Nothing, Just _) -> 1(_, _) -> 2Here, infi is an action that never ends, and stop a function that ends immediately. I thought that the compiler would see that stop evaluates immediately to Nothing and thus will return 2, but it tries to evaluate infi and get stuck.I think it happens because I am using a tuple to hold both values (but not really sure about it). Do you know a way to make this arrangement work?Yotam
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.