Common Lisp/Примітивні об'єкти даних/Відповіді

Матеріал з Вікіпідручника

Common Lisp/Примітивні об'єкти даних:

1. a) $ (DEFUN EQNUM (lst)

((NULL (CDR lst)) T)

((NUMBERP (CAR lst)) ((EQL (CAR lst) (CADR lst)) (EQNUM (CDR lst)))) )

б) $ (DEFUN SYMALL (lst)

((NULL lst) T)

((SYMBOLP (CAR lst)) (SYMALL (CDR lst))) )

в) $ (DEFUN DRIBVID (lst)

((NULL lst) T)

((EQL (CDAR lst) SPECIAL) (DRIBVID (CDR lst))) )

г) $ (DEFUN MINT (lst)

((NULL lst) T)

((NULL (CDR lst)) NIL)

((NOT (CDAR lst)) ((CDADR lst) (MINT (CDDR lst)))) )

д) $ (DEFUN VIDPAR (lst)

((NULL lst) T)

((EVENP (CAR lst)) ((MINUSP (CAR lst)) (VIDPAR (CDR lst)))) )


2. a) (((q . w) . (e . r)) . ((t . y) . (u . i)))

б) ((((q) . w) . r) . t)


3. a) $ (DEFUN ON1 (lst)

((ATOM (CDR lst)) (CONS (CAR lst) NIL))

(CONS (CAR lst) (CONS (ON1 (CDR lst)) NIL)) )

б) $ (DEFUN ON2 (lst)

((ATOM (CDR lst)) (CONS (CAR lst) NIL))

(CONS (ON2 (CDR lst)) (CAR lst)) )

в) $ (DEFUN ON3 (lst)

((ATOM (CDR lst)) (CONS (CONS (CAR lst) NIL) NIL))

(CONS (CONS (CAR lst) NIL) (ON3 (CDR lst))) )

г) $ (DEFUN ON4 (lst)

((ATOM (CDDR lst))(CONS (CONS (CAR lst) (CONS (CADR lst) NIL)) NIL))

(CONS (CONS (CAR lst) (CONS (CADR lst) NIL)) (ON4 (CDDR lst))) )


4. a) $ (DEFUN RON1 (lst)

((NULL lst) NIL)

(CONS (CAR lst) (RON! (CADR lst))) )

б) $ (DEFUN RON2 (lst)

((ATOM (CAR lst)) lst)

(CONS (CADR lst) (RON2 (CAR lst))) )

в) $ (DEFUN RON3 (lst)

((NULL lst) NIL)

(CONS (CAAR lst) (RON3 (CDR lst))) )

г) $ (DEFUN RON4 (lst)

((NULL lst) NIL)

(CONS (CAAR lst) (CONS (CADAR lst) (RON4 (CDR lst)))) )