head-strict

from The Free On-line Dictionary of Computing (8 July 2008)
head-strict

   <theory> A head-strict function will not necessarily evaluate
   every {cons} cell of its (list) argument, but whenever it does
   evaluate a cons cell it will also evaluate the element in the
   head of that cell.  An example of a head-strict function is

   	beforeZero :: [Int] -> [Int]
   	beforeZero []     = []
   	beforeZero (0:xs) = []
   	beforeZero (x:xs) = x : beforeZero xs

   which returns a list up to the first zero.

   This pattern of evaluation is important because it is common
   in functions which operate on a list of inputs.

   See also {tail-strict}, {hyperstrict}.

   (1995-05-11)
    

[email protected]