Combinations (program eval)

For a function application, evaluate must recursively evaluate the function expression and the argument expressions of the application.

The resulting function and arguments are passed to apply, which handles the actual function application.

Operator combination ->function application and Evaluate