[plt-scheme] List accessor predicates
Hi all,
Sorry for sending lengthy mails to the list, but I'd like to know
whether the module attached below is correct. (It's auto-generated,
of course.)
Best regards,
Erich
--------
(module list-accessor-predicates mzscheme
(provide (all-defined))
(define-syntax car? (syntax-rules () ((car? datum) (pair? datum))))
(define-syntax cdr? (syntax-rules () ((cdr? datum) (pair? datum))))
(define-syntax cadr? (syntax-rules () ((cadr? datum) (and (pair?
datum) (pair? (cdr datum))))))
(define-syntax cdar? (syntax-rules () ((cdar? datum) (and (pair?
datum) (pair? (car datum))))))
(define-syntax caar? (syntax-rules () ((caar? datum) (and (pair?
datum) (pair? (car datum))))))
(define-syntax cddr? (syntax-rules () ((cddr? datum) (and (pair?
datum) (pair? (cdr datum))))))
(define-syntax cdaar? (syntax-rules () ((cdaar? datum) (and (pair?
datum) (pair? (car datum)) (pair? (caar datum))))))
(define-syntax cadar? (syntax-rules () ((cadar? datum) (and (pair?
datum) (pair? (car datum)) (pair? (cdar datum))))))
(define-syntax caadr? (syntax-rules () ((caadr? datum) (and (pair?
datum) (pair? (cdr datum)) (pair? (cadr datum))))))
(define-syntax caddr? (syntax-rules () ((caddr? datum) (and (pair?
datum) (pair? (cdr datum)) (pair? (cddr datum))))))
(define-syntax cdadr? (syntax-rules () ((cdadr? datum) (and (pair?
datum) (pair? (cdr datum)) (pair? (cadr datum))))))
(define-syntax cddar? (syntax-rules () ((cddar? datum) (and (pair?
datum) (pair? (car datum)) (pair? (cdar datum))))))
(define-syntax caaddr? (syntax-rules () ((caaddr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cddr datum)) (pair? (caddr
datum))))))
(define-syntax cadadr? (syntax-rules () ((cadadr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cadr datum)) (pair? (cdadr
datum))))))
(define-syntax caddar? (syntax-rules () ((caddar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (cdar datum)) (pair? (cddar
datum))))))
(define-syntax cdaadr? (syntax-rules () ((cdaadr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cadr datum)) (pair? (caadr
datum))))))
(define-syntax cdadar? (syntax-rules () ((cdadar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (cdar datum)) (pair? (cadar
datum))))))
(define-syntax cddaar? (syntax-rules () ((cddaar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (caar datum)) (pair? (cdaar
datum))))))
(define-syntax cadddr? (syntax-rules () ((cadddr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cddr datum)) (pair? (cdddr
datum))))))
(define-syntax cdaddr? (syntax-rules () ((cdaddr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cddr datum)) (pair? (caddr
datum))))))
(define-syntax cddadr? (syntax-rules () ((cddadr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cadr datum)) (pair? (cdadr
datum))))))
(define-syntax cdddar? (syntax-rules () ((cdddar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (cdar datum)) (pair? (cddar
datum))))))
(define-syntax cddddr? (syntax-rules () ((cddddr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cddr datum)) (pair? (cdddr
datum))))))
(define-syntax caaadr? (syntax-rules () ((caaadr? datum) (and
(pair? datum) (pair? (cdr datum)) (pair? (cadr datum)) (pair? (caadr
datum))))))
(define-syntax caadar? (syntax-rules () ((caadar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (cdar datum)) (pair? (cadar
datum))))))
(define-syntax cadaar? (syntax-rules () ((cadaar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (caar datum)) (pair? (cdaar
datum))))))
(define-syntax cdaaar? (syntax-rules () ((cdaaar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (caar datum)) (pair? (caaar
datum))))))
(define-syntax caaaar? (syntax-rules () ((caaaar? datum) (and
(pair? datum) (pair? (car datum)) (pair? (caar datum)) (pair? (caaar
datum))))))
)