[Haskell-beginners] Evaluate function
Brent Yorgey
byorgey at seas.upenn.edu
Mon May 26 16:21:57 UTC 2014
On Mon, May 26, 2014 at 04:25:35PM +0200, Daniel Trstenjak wrote:
> On Mon, May 26, 2014 at 08:21:36PM +0700, Kim-Ee Yeoh wrote:
> > The length function strikes me as a kludgy stand-in for rnf when rnf is really
> > what's meant.
>
> And depending on the type of the list entries, calling length won't
> always have the same effect then calling rnf on the list and therefore
> on all entries of the list.
>
Though I could imagine a situation where one wants to force the spine
of the list but not the elements it contains. In that case rnf would
do too much, and 'length' would do the right thing. However, 'length'
still feels kludgy here. What is really wanted is a domain-specific
language for expressing which parts of a structure should be forced.
Such a domain-specific language can be found here:
http://hackage.haskell.org/package/parallel-3.2.0.4/docs/Control-Seq.html
In particular, forcing the spine of a list but not its elements can be expressed by
evaluate (puzzles `using` seqList r0)
.
-Brent
More information about the Beginners
mailing list