
manolo@austrohungaro.com writes:
increment b = b + 1
This is also called 'succ' (for successor).
main = do let b = 0 let c = randomRIO (1,2) until (c == 1) increment b return b
ERROR "StPetersburg.hs":8 - Type error in application *** Expression : until (c == 1) increment b *** Term : c == 1 *** Type : Bool *** Does not match : Int -> Bool
Prelude> :t until until :: (a -> Bool) -> (a -> a) -> a -> a So until wants a function from a something to a boolean, but you are giving it (c==1) which is just a boolean. More generally, I think you should solve this in a more functional style, perhaps using randomRs to get a list of coin tosses, and take what you need from that. -k -- If I haven't seen further, it is by standing in the footprints of giants