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:[EMAIL PROTECTED] _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe