
When trying to right IO I continually run across this sort of compile error which I just don't understand. Any help would be very muich appreciated. Function: while :: IO Bool -> IO () -> IO () while test action = do res <- test if res then do action while test action else return () Error: io.hs: 112 lines, 2463 characters. Reading file "io.hs": Parsing ERROR io.hs:110 - Last generator in do {...} must be an expression Tom

| When trying to right IO I continually run across this | sort of compile error which I just don't understand. | Any help would be very muich appreciated. | | Function: | | | while :: IO Bool -> IO () -> IO () | | while test action = do res <- test | if res then do action | while test action | else return () Haskell uses "layout" to reduce the need for parentheses. For your code to parse, "if" should align with "res" vertically, as in: ... = do res <- test if res ... - Zhanyong
participants (2)
-
Tom Bevan
-
Zhanyong Wan