[Haskell-cafe] Tutorial on Haskell
Derek Elkins
derek.a.elkins at gmail.com
Mon Apr 16 12:41:43 EDT 2007
Mark T.B. Carroll wrote:
> Bryan O'Sullivan <bos at serpentine.com> writes:
>
>> Mark T.B. Carroll wrote:
>>
>>> I'm afraid no
>>> examples come easily to mind, though.
>> Here's a simple one: reading a flattened graph from disk. If your
>> flattened representation contains forward references, you have to fix
>> them up in a strict language. In a lazy language, you can refer to
>> elements you haven't yet read, eliminating that book-keeping.
>
> That's a good point. Indeed, I had used laziness in a programme that
> read a file that contained a series of entity definitions that could
> include forward references, I just couldn't remember exactly how I'd
> used laziness. (-: (It's also useful in some memoising, I think.)
>
> -- Mark
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
Near the bottom of http://www.haskell.org/hawiki/TyingTheKnot is an example that
uses lazy evaluation to do exactly this. The real kicker though, is that the
change from backward references only (i.e. simplistic one-pass code that would
work in a strict language) to forward and backward references is trivial (just
pass in the output).
More information about the Haskell-Cafe
mailing list