We investigate functional computation as a special form of concurrent computation. As formal basis, we use a
uniformly confluent core of the -calculus,
which is
also contained in models of higher-order concurrent
constraint programming. We embed the call-by-need
and the call-by-value -calculus
into the
-calculus. We prove that call-by-need
complexity is
dominated by call-by-value complexity. In contrast to
the recently proposed call-by-need -calculus,
our concurrent call-by-need model incorporates mutual
recursion and can be extended to cyclic data structures
by means of constraints.
A
shorter version appeared in the Proceedings
of the ACM Symposium on Principles of Programming Languages,
St. Petersburg Beach, Florida, January 1996, ACM Press.