Функції конструктора, Детальна інформація
Функції конструктора
((ATOM LST1) LST2)
(CONS (CAR LST1) (APPEND (CDR LST1) LST2)) )
$ (SETQ FOO '(D E F))
(D E F)
$ (APPEND '(A B C) FOO '(G H I)) $ (APPEND '(I U) 'T 'R 'E '(O I))
(A B C D E F G H I) (I U O I)
Копіює cons-и верхнього рівня списку list та повертає список, еквівалентний (тобто рівний – EQUAL) списку list.
(DEFUN COPY-LIST (LST)
((ATOM LST) LST)
(CONS (CAR LST) (COPY-LIST (CDR LST))) )
$ (COPY-LIST '(A B (C . D) E)) $ (COPY-LIST '(A B C . D))
(A B (C . D) E) (A B C . D)
7. (COPY-TREE object). Копіює cons-и верхнього рівня об‘єкту object та повертає об‘єкт, еквівалентний object.
(DEFUN COPY-TREE (OBJ)
((ATOM OBJ) OBJ)
(CONS (COPY-TREE (CAR OBJ)) (COPY-TREE (CDR OBJ))) )
$ (COPY-TREE '(A B (C . D) E)) $ (COPY-TREE '(A B C . D))
(A B (C . D) E) (A B C . D)
8. (FIRSTN n list). Якщо n - додатне ціле, функція копіює та повертає перші n елементів списку. FIRSTN повертає NIL, якщо n - недодатне ціле. Якщо список має n або більше елементів, FIRSTN копіює та повертає елементи списку.
(DEFUN FIRSTN (N LST)
((AND (INTEGERP N) (PLUSP N))
((ATOM LST) NIL)
(CONS (CAR LST) (FIRSTN (SUB1 N) (CDR LST))) ) )
$ (FIRSTN 0 '(SUE JOE ANN BOB)) $ (FIRSTN 2 '(A B . C))
NIL (A B)
$ (FIRSTN 2 '(SUE JOE ANN BOB)) $ (FIRSTN 3 '(A B . C))
(SUE JOE) (A B)
$ (FIRSTN 4 '(SUE JOE ANN BOB))
(SUE JOE ANN BOB)
$ (FIRSTN 5 '(SUE JOE ANN BOB))
(CONS (CAR LST1) (APPEND (CDR LST1) LST2)) )
$ (SETQ FOO '(D E F))
(D E F)
$ (APPEND '(A B C) FOO '(G H I)) $ (APPEND '(I U) 'T 'R 'E '(O I))
(A B C D E F G H I) (I U O I)
Копіює cons-и верхнього рівня списку list та повертає список, еквівалентний (тобто рівний – EQUAL) списку list.
(DEFUN COPY-LIST (LST)
((ATOM LST) LST)
(CONS (CAR LST) (COPY-LIST (CDR LST))) )
$ (COPY-LIST '(A B (C . D) E)) $ (COPY-LIST '(A B C . D))
(A B (C . D) E) (A B C . D)
7. (COPY-TREE object). Копіює cons-и верхнього рівня об‘єкту object та повертає об‘єкт, еквівалентний object.
(DEFUN COPY-TREE (OBJ)
((ATOM OBJ) OBJ)
(CONS (COPY-TREE (CAR OBJ)) (COPY-TREE (CDR OBJ))) )
$ (COPY-TREE '(A B (C . D) E)) $ (COPY-TREE '(A B C . D))
(A B (C . D) E) (A B C . D)
8. (FIRSTN n list). Якщо n - додатне ціле, функція копіює та повертає перші n елементів списку. FIRSTN повертає NIL, якщо n - недодатне ціле. Якщо список має n або більше елементів, FIRSTN копіює та повертає елементи списку.
(DEFUN FIRSTN (N LST)
((AND (INTEGERP N) (PLUSP N))
((ATOM LST) NIL)
(CONS (CAR LST) (FIRSTN (SUB1 N) (CDR LST))) ) )
$ (FIRSTN 0 '(SUE JOE ANN BOB)) $ (FIRSTN 2 '(A B . C))
NIL (A B)
$ (FIRSTN 2 '(SUE JOE ANN BOB)) $ (FIRSTN 3 '(A B . C))
(SUE JOE) (A B)
$ (FIRSTN 4 '(SUE JOE ANN BOB))
(SUE JOE ANN BOB)
$ (FIRSTN 5 '(SUE JOE ANN BOB))
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021