Division of Computing Science, University of St Andrews, St Andrews, UK May, 1997 Abstract The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies, lazy higher-order functions that control the parallel evaluation of non-stri