-
Notifications
You must be signed in to change notification settings - Fork 5
Library CxR
Jacques Nomssi edited this page Nov 1, 2020
·
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 two-level, three-level and four-level 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)))