
Hello John, Wednesday, February 01, 2006, 6:48:48 AM, you wrote:
On the other hand, if pattern bindings were strict by default, I bet there would be a lot fewer accidental space leaks.
JM> I don't think this is true. I think there would just be a whole lot of a JM> different type of space leak. Lazy by default is more in the spirit of JM> haskell. i had one idea, what is somewhat corresponding to his discussion: make a strict Haskell dialect. implement it by translating all expressions of form "f x" into "f $! x" and then going to the standard (lazy) haskell translator. the same for data fields - add to all field definitions "!" in translation process. then add to this strict Haskell language ability to _explicitly_ specify lazy fields and lazy evaluation, for example using this "~" sign what it will give? ability to use Haskell as powerful strict language, what is especially interesting for "real-world" programmers. i have found myself permanently fighting against the lazyness once i starting to optimize my programs. for the newcomers, it just will reduce learning path - they don't need to know anything about lazyness another interesting application of such a language is to make strict and lazy versions of data structures just by compiling the same module in the strict and lazy Haskell modes -- Best regards, Bulat mailto:bulatz@HotPOP.com