Unlike some languages like Pascal, functions are regular data objects and can be stored in data structures, extracted, and the result of a computation can be invoked like any other function[1]
Note that the use of the term "function" does not imply anything in the sense of purely functional languages. The term is used here as in Dylan and C; functions can have side effects, and can return zero or more values (unlike C and Java which only support returning zero or one values)
[1] | Some languages, like C, support first-class functions -- function pointers, in their terminology -- but functions in RScheme are richer structures that in C because here they include their lexical environment. They are closures rather than just code. |