The evaluation mechanism allows us to regard 
  as a functional  programming
language.
For example, the multiplication function in Nuprl
  notation
is  
  x.
  y.(x*y),
and one can evaluate  (
  x.
  y.(x*y))(2)(3) to obtain
the value  6.
Of course, one can define much more complex data such as infinite
precision real numbers and functions on them such as multiplication
(see section 11.6).
In this case we might also evaluate the form
 (
  x.
  y.mult(x,y))(e)(pi)(50),
which might print the first 50 digits of the infinite precision
multiplication of the transcendental numbers e and 
.
The evaluation mechanism can also use a special form, 
 term_of(t) , where
t is a theorem.
The  term_of operation extracts the constructive meaning of a theorem.
Thus if we have proved a theorem named t of the form
 for all x of type A there is a y of type B such that 
then  term_of(t) extracts  a function mapping any a in A to a pair
consisting of an element from B, say b, and a proof,
say p, of 
.
By selecting the first element of this pair we can build a function f
from A to B such that 
 for all x in A.
The system also provides a mechanism for naming and storing executable terms
in the library.