strict Haskell dialect
Creighton Hogg
wchogg at primula.hep.wisc.edu
Wed Feb 1 10:42:45 EST 2006
On Wed, 1 Feb 2006, Bulat Ziganshin wrote:
> 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
I apologize in advance if I say something silly, but
wouldn't such a language transformation be a use for
Template Haskell? Superficially, it seems like you should
be able to do that.
More information about the Haskell-prime
mailing list