(include "lib/core.scm") (datatype list (:nil) (:cons 'a (list 'a)) ) (define car (x . _) -> x _ -> (error "car") ) (define cdr (_ . y) -> y _ -> (error "cdr") ) (cdr '(1 2 3)) (define thing (1 2 a b) -> a (1 2 a 9) -> a () -> 0 _ -> -1 ) (define duncan ((1 2) (3 4 5) (6 7)) -> "idaho" _ -> "donuts" ) { a = (car '(1 2 3)) b = (cdr '(10 11 12)) c = (thing '(1 2 9 8)) d = (duncan '((1 2) (3 4 5) (6 7))) e = (duncan '((1 2) (3 4 5 9) (6 7))) }