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

Функції планування
Тип документу: Реферат
Сторінок: 5
Предмет: Комп`ютерні науки
Автор: Олексій
Розмір: 0
Скачувань: 832
$ (NOTANY 'EQL '(DOG CAT COW) '(COW CAT DOG))

NIL

$ (NOTANY 'ODDP (LIST 0 (+3 3) 7/2))

T

(EVERY <тест>, <список1>, <список2>, ..., <списокN>). Якщо тест видає NIL, EVERY повертає NIL. Якщо зустрінеться кінець списку, EVERY повертає Т. Функцію EVERY можна визначити наступним чином:

(DEFUN EVERY (TST LST1 LST2)

(LOOP

((OR (NULL LST1) (NULL LST2)) NIL)

((NOT (FUNCALL TST (POP LST1) (POP LST2))) T) )

$ (EVERY 'EQL '(DOG CAT COW) '(DOG CAT PIG))

NIL

$ (EVERY 'ODDP (LIST 3 5 7 11 13))

T

(NOTEVERY <тест>, <список1>, <список2>, ..., <списокN>). Якщо тест повертає NIL, NOTEVERY повертає Т. Якщо зустрінеться кінець спискy, NOTEVERY повертає NIL. Функцію NOTEVERY можна визначити наступним чином:

(DEFUN NOTEVERY (TST LST1 LST2)

(NOT (EVERY TST LST1 LST2)) )

$ (NOTEVERY 'EQL '(DOG CAT COW) '(DOG CAT PIG))

T

$ (NOTEVERY 'STRING< '(BILL JACK JOE) '(BUD JIM SUE))

NIL

(REDUCE <функція> <список> <початкове значення>) перетворює значення елементів <списку> до простого значення, використовуючи <функцію> - функцію двох аргументів. Перетворення відбувається у відповідності з початковим значенням зліва направо. По замовченню початковим значенням для операції + є 0, для * є 1.

$ (REDUCE 'CONS '(A B C D)) $ (REDUCE '* '(2 3 5 7))

(((A . B) . C) . D) 210

$ (REDUCE '+ NIL)

0

$ (REDUCE '* '(2 3 5 7) -2) $ (REDUCE '* NIL)

-420 1

Розглянемо задачу транспонування матриці, поданої у вигляді складного списку. Функція TRANS транспонує матрицю.

(DEFUN TRANS (matr)

((EVERY 'NULL matr) NIL)

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