-
Notifications
You must be signed in to change notification settings - Fork 5
Library CxR
Jacques Nomssi edited this page Feb 14, 2018
·
2 revisions
The (scheme cxr) library exports twenty-four procedures which are the compositions of from three to four car and cdr operations. For example caddar could be defined by
(define caddar (lambda (x) (car (cdr (cdr (car x)))))).
The procedures car and cdr themselves and the four twolevel compositions are included in the base library.
(caar x) -> (car (car x))
(cadr x) -> (car (cdr x))
(cdar x) -> (cdr (car x))
(cddr x) -> (cdr (cdr x))
; CxR Library
(define (caar x) (car (car x )))
(define (cadr x) (car (cdr x )))
(define (cdar x) (cdr (car x )))
(define (cddr x) (cdr (cdr x )))
(define (caaar x) (car (caar x)))
(define (cdaar x) (cdr (caar x)))
(define (caadr x) (car (cadr x)))
(define (cdadr x) (cdr (cadr x)))
(define (cadar x) (car (cdar x)))
(define (cddar x) (cdr (cdar x)))
(define (caddr x) (car (cddr x)))
(define (cdddr x) (cdr (cddr x)))
(define (caaaar x) (car (caaar x)))
(define (cdaaar x) (cdr (caaar x)))
(define (cadaar x) (car (cdaar x)))
(define (cddaar x) (cdr (cdaar x)))
(define (caaadr x) (car (caadr x)))
(define (cdaadr x) (cdr (caadr x)))
(define (cadadr x) (car (cdadr x)))
(define (cddadr x) (cdr (cdadr x)))
(define (caadar x) (car (cadar x)))
(define (cdadar x) (cdr (cadar x)))
(define (caddar x) (car (cddar x)))
(define (cdddar x) (cdr (cddar x)))
(define (caaddr x) (car (caddr x)))
(define (cdaddr x) (cdr (caddr x)))
(define (cadddr x) (car (cdddr x)))
(define (cddddr x) (cdr (cdddr x)))