
Hello Mark, Wednesday, January 31, 2007, 7:30:33 PM, you wrote:
Ah, I may see my confusion then - I do see a natural ordering in my Haskell expressions, and indeed evaluation order could be different so long as the end result is the same, but I don't find that different to imperative languages - I would expect modern compilers to reorder statements
you said :) they *reorder* statements while we don't have any order at all :) (at least on kitchen ;) practice shows that there is big difference between chunks that's "reordered". pure code means that any computations may be reordered, so we have much bigger chunks and don't need to play with compiler "safe optimization" options. higher-order functions, lazy evaluation, lazy functional datastructures and special GC adds more to this. just try to rewrite simplest quicksort function in C* and look how much it will be reordered :) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com