Como já vimos, o Lisp considera que o primeiro elemento de uma combinação é um operador e os restantes são os operandos.
O avaliador determina o valor de uma combinação como o resultado de aplicar o procedimento especificado pelo operador ao valor dos operandos. O valor de cada operando é designado de argumento do procedimento. Assim, o valor da combinação (+ 1 (* 2 3)) é o resultado de somar o valor de 1 com o valor de (* 2 3). Como já se viu, 1 vale 1 e (* 2 3) é uma combinação cujo valor é o resultado de multiplicar o valor de 2 pelo valor de 3, o que dá 6, e que somado a 1 dá 7.
> (+ 1 2) 3 > (+ 1 (* 2 3)) 7
Exercício 5
Calcule o valor das seguintes expressões Lisp:
(* (/ 1 2) 3) (* 1 (- 2 3)) (/ (+ 1 2) 3) (/ (/ 1 2) 3) (/ 1 (/ 2 3)) (- (- 1 2) 3) (- 1 2 3) (- 1)