ВУЗ:
Составители:
Рубрика:
35
(defun MEMB (a l) ; имя функции и список
аргументов
(cond ((null l) nil) ; список l пуст ?
((eq l (car l) a) l) ;элемент а найден ?
(t (MEMB a (cdr l))))) ; элемент а - в хвосте списка l?
С помощью этой функции можно проверить , принадлежит ли
некоторый элемент A данному списку L или нет.
Тело функции состоит из условного предложения , содержащего три
ветви. Они участвуют в процессе вычислений в зависимости
от
возникающей ситуации:
1. ((null l) nil) :
Аргумент - пустой список либо с самого начала , либо потому , что
просмотр списка окончен.
2. ((eq l (car l) a) l) :
Первым элементом является искомый элемент. В качестве
результата возвращается список , в котором А - первый элемент.
3. (t (MEMB a (cdr l))) :
Ни одно из предыдущих утверждений не верно: в таком случае либо
элемент содержится в хвосте списка ,
либо вовсе не входит в список.
Если список L пуст либо А в него не входит , то функция возвращает
NIL. В противном случае она возвращает в качестве своего значения ту
часть списка , в которой искомое А является его первым элементом. Это
отличное от NIL выражение соответствует логическому значению
"истина".
Пример вызова функции и
получение результатов:
(MEMB 'b '(a b c d))
После ввода этого выражения интерпретатор выдаст результат
(B C D)
В определении предиката MEMB первоначальная задача разбита на
три подзадачи. Первые две из них сводятся к просым условиям
окончания. Третья решает такую же задачу , но на шаг более короткую.
35
(defun MEMB (a l) ; имя функции и список
аргументов
(cond ((null l) nil) ; список l пуст ?
((eq l (car l) a) l) ;элемент а найден ?
(t (MEMB a (cdr l))))) ; элемент а - в хвосте списка l?
С помощью этой функции можно проверить , принадлежит ли
некоторый элемент A данному списку L или нет.
Тело функции состоит из условного предложения , содержащего три
ветви. Они участвуют в процессе вычислений в зависимости от
возникающей ситуации:
1. ((null l) nil) :
Аргумент - пустой список либо с самого начала , либо потому , что
просмотр списка окончен.
2. ((eq l (car l) a) l) :
Первым элементом является искомый элемент. В качестве
результата возвращается список , в котором А - первый элемент.
3. (t (MEMB a (cdr l))) :
Ни одно из предыдущих утверждений не верно: в таком случае либо
элемент содержится в хвосте списка , либо вовсе не входит в список.
Если список L пуст либо А в него не входит , то функция возвращает
NIL. В противном случае она возвращает в качестве своего значения ту
часть списка , в которой искомое А является его первым элементом. Это
отличное от NIL выражение соответствует логическому значению
"истина".
Пример вызова функции и получение результатов:
(MEMB 'b '(a b c d))
После ввода этого выражения интерпретатор выдаст результат
(B C D)
В определении предиката MEMB первоначальная задача разбита на
три подзадачи. Первые две из них сводятся к просым условиям
окончания. Третья решает такую же задачу , но на шаг более короткую.
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »
