
29 Oct
2009
29 Oct
'09
8:48 a.m.
| > do { a <- getChar | > ; rec { b <- f c | > ; c <- g b } | > ; putChar c | > ; return b } | This last point notwithstanding, | I find the scoping rules very unintuitive! | (b and c appear to escape their apparently nested scope.) well you are happy with do { z <- getChar ; let { b = f c ; c = g b } ; putChar c ; return b } It's just the same! Perhaps I should mention this in the user manual. (In haskell 'let' means 'letrec' of course.) Simon