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