Функції конструктора, Детальна інформація

Функції конструктора
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 8.1
Скачувань: 883
((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))

The online video editor trusted by teams to make professional video in minutes