Strictness (was: Is this tail recursive?)
Andrew Butterfield
Andrew.Butterfield@cs.tcd.ie
Thu, 14 Mar 2002 10:27:41 +0000
At 22:47 13/03/02 -0600, Jay Cox wrote:
>Perhaps what could be done about this strictness business is to make a
>kind of strictness annotation. Perhaps something that says (force the
>second argument of function F before every call to F (including any time F
>calls itself)).
>...
>here's a rough example. !a mean !a will be forced at its application (for
>not knowing proper language to call it).
>
>strict_foldl :: (a -> b -> a) -> !a -> [b] -> a
>strict_foldl = foldl
>
>of course, there has to be a number of things that must be propagated
>whence you start adding these things. like for instance.
>....
>How about it? Has there been any other proposals? (like maybe going as
>far as a "Strictness Type" system?)
I think the Clean type system does stuff like this - it certainly supports
strictness analysis and annotations:
- see http://www.cs.kun.nl/~clean/ for more details
>_______________________________________
>Haskell mailing list
>Haskell@haskell.org
>http://www.haskell.org/mailman/listinfo/haskell
------------------------------------------------------------------------
Dr. Andrew Butterfield (http://www.cs.tcd.ie/Andrew.Butterfield/)
Course Director, B.A. (Mod.) Information & Communications Technology
Dept.of Computer Science, Trinity College, Dublin University
Tel: +353-1-608-2517, Fax: +353-1-677-2204
------------------------------------------------------------------------