
David Place
main =do x<-getLine y<-return x print $ stringToInt y
This is exactly equivalent to the other methods, but has the additional 'return', which is a no-op. Please do not suggest such a style.
Really? Without the return it will not work. So, it isn't a noop. Stylistically, I like it better than the 'let' in 'do' notation.
It will not work, because you have additional identifiers. The code y <- return x really just states the same as: let y = x and this is a requirement of the monad laws: c >=> return = c return >=> c = c Abusing 'return' is mostly an artifact from former imperative programmers, who think that 'return' in Haskell is a control construct. It's not; it's just a function. Greets, Ertugrul -- nightmare = unsafePerformIO (getWrongWife >>= sex) http://ertes.de/