What kind of a structure can the caaadr procedure be applied
to? What must its operand look like?
The operand must be a pair (pr1) in which the second component
is also a pair (pr2); moreover, the first component of
pr2 must also be a pair (pr3), and the first
component of pr3 must also be a pair
(pr4).
Which of the elements of such a structure does caaadr
return?
It returns the first component of pr4.
> (define example-1 (cons #f (cons (cons (cons #t #f) #f) #f)))
> (caaadr example-1)
#t
> (define example-2 (cons (cons (cons (cons 1 2) (cons 3 4))
(cons (cons 5 6) (cons 7 8)))
(cons (cons (cons 9 10) (cons 11 12))
(cons (cons 13 14) (cons 15 16)))))
> (caaadr example-2)
9
What happens if the structure has the wrong shape? It is an error, so under most implementations the program crashes:
> (caaadr (cons (cons (cons 1 2) (cons 3 4))
(cons (cons 5 6) (cons 7 8))))
ERROR: caaadr: Wrong type in arg1 5
Next topic
Next major topic
Previous topic
Table of contents
This document is available on the World Wide Web as
http://www.math.grin.edu/~stone/scheme-web/caaadr.html