DCT, is temporarily stored in
dctand temporarily replaced by an extension of the lexical environment of the function,
Dct. Then the body of the function is evaluated in this extension as 'current environment'. After this is done, the current environment is restored to the one we were using before calling the function. The result of evaluating the body (
val) is returned as the result of calling the function.