Hi All,

  > I find this interesting. It would be nice if you would like to explain me
  > what you mean by " hyperstrict"
  > 
I think hyperstrict means that a function completely evaluates *all* of its
arguments before the body of the function, as opposed to only some of
them. 
A function f taking n arguments is strict in its i'th argument if
f a_1 .. a_i-1  _|_ a_i+1 .. a_n = _|_
E.g. const is strict in its first argument but not in its second.

f is strict in all arguments if
f a_1 .. a_n = _|_ whenever one of the a_i's is _|_.
multOrAdd x y z = if x then y * z else y + z 
is strict in all of it arguments.
Hyperstrict has, in my view at least, also an annotation of completely
evaluating all arguments before the body of the function - something else
than (eventually) evaluating them all. I'm not sure about this though,
maybe someone can shed more light on this matter. 

Hope this helps (or leads to someone else giving a better definition :-)

Jan de Wit  


Reply via email to