
Hello Tomasz, Wednesday, January 31, 2007, 12:01:16 PM, you wrote:
there are also many other similar issues, such as lack of good syntax for "for", "while", "break" and other well-known statements,
On the other hand you have an ability to define your own control structures.
i have a lot, but their features are limited, both in terms of automatic lifting and overall syntax. let's consider while (hGetBuf h buf bufsize == bufsize) crc := updateCrc crc buf bufsize break if crc==0 print crc how this can be expressed in Haskell, without losing clarity?
inability to use "return" inside of block and so on
"inability" is an exaggeration - you can use the ContT monad transformer, which even allows you to choose how "high" you want to jump. But you probably already know this and just want to point that it is cumbersome?
don't know and don't want to use such a hard way. there is a simpler solution, but it still requires to write more boilerplate code than C: res <- doSomething if isLeft res then return$ fromLeft res else do let (Right x) = res ... -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com