<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
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.
Head Normal Form « head normalisation theorem «
heads down «
head-strict » heap » heartbeat » heatseeker