1; SketchyLISP Library
2; Copyright (C) 2005,2006,2007 Nils M Holm. All rights reserved.
3; See the file LICENSE of the SketchyLISP distribution
4; for conditions of use.
5
6; ---name---
7; caaaar ... cddddr
8
9; ---conformance---
10; R5RS
11
12; ---purpose---
13; Access elements of nested pairs.
14
15; ---args---
16; X - list
17
18; ---keywords---
19; CAAAAR, CAAADR, CAADAR, CAADDR
20; CAADAR, CADADR, CADDAR, CADDDR
21; CDAAAR, CDAADR, CDADAR, CDADDR
22; CDDAAR, CDDADR, CDDDAR, CDDDDR
23; lists, selector, decomposition
24
25; ---see-also---
26; caaar, caar
27
28; ---example---
29; (cadddr '(a b c d e f g h)) => d
30
31(define caaaar #t)
32
33; ---code---
34(define (caaaar x) (car (car (car (car x)))))
35(define (caaadr x) (car (car (car (cdr x)))))
36(define (caadar x) (car (car (cdr (car x)))))
37(define (caaddr x) (car (car (cdr (cdr x)))))
38(define (cadaar x) (car (cdr (car (car x)))))
39(define (cadadr x) (car (cdr (car (cdr x)))))
40(define (caddar x) (car (cdr (cdr (car x)))))
41(define (cadddr x) (car (cdr (cdr (cdr x)))))
42(define (cdaaar x) (cdr (car (car (car x)))))
43(define (cdaadr x) (cdr (car (car (cdr x)))))
44(define (cdadar x) (cdr (car (cdr (car x)))))
45(define (cdaddr x) (cdr (car (cdr (cdr x)))))
46(define (cddaar x) (cdr (cdr (car (car x)))))
47(define (cddadr x) (cdr (cdr (car (cdr x)))))
48(define (cdddar x) (cdr (cdr (cdr (car x)))))
49(define (cddddr x) (cdr (cdr (cdr (cdr x)))))
50