ВУЗ:
Составители:
Рубрика:
35
Варианты решений
Определите функцию LAST1, возвращающую последний элемент списка.
Функция:
(define (LAST1 L)
(cond
((null? (cdr L)) (car L)) ;если только один элемент
;(нет хвоста) -
;возвратить его значение
(t (LAST1 (cdr L))) ;иначе - вернуть
;последний эл-т хвоста
)
)
Результат выполнения:
[1] (last1 '(a bc def))
DEF
Определите функцию DELLAST1, удалающую из списка последний элемент.
Функция:
(define (DELLAST L)
(cond
((null? (cdr L)) nil) ;если в L только один
элемент,
;то возвращаем nil
(t (cons (car L) (DELLAST (cdr L))))
;если больше одного
эл-та -
возвращаем
;список из первого эл-та L
и
;"обрезанного" хвоста L
)
)
Результат выполнения:
[4] (DELLAST '(a bc def))
(A BC)
Определите предикат (функцию) ATOMLIST, проверяющий, является ли
предикат одноуровневым списком.
Функция:
(define (ATOMLIST L)
(cond
((null? L) t) ;true - если список пуст
((atom? (car L)) (ATOMLIST (cdr L)))
;если голова списка -
;атом - продолжаем
;проверку хвоста
(t nil)
)
)
Результат выполнения:
[1] (ATOMLIST '(a bc def))
#T
[2] (ATOMLIST '(a (bc def)))
()
Определите функцию ONION («луковица»), строящую N-уровневый вложенный
список.
Функция:
(define (ONION N)
(if (= n 0)
35
Варианты решений
Определите функцию LAST1, возвращающую последний элемент списка.
Функция:
(define (LAST1 L)
(cond
((null? (cdr L)) (car L)) ;если только один элемент
;(нет хвоста) -
;возвратить его значение
(t (LAST1 (cdr L))) ;иначе - вернуть
;последний эл-т хвоста
)
)
Результат выполнения:
[1] (last1 '(a bc def))
DEF
Определите функцию DELLAST1, удалающую из списка последний элемент.
Функция:
(define (DELLAST L)
(cond
((null? (cdr L)) nil) ;если в L только один
элемент,
;то возвращаем nil
(t (cons (car L) (DELLAST (cdr L))))
;если больше одного эл-та -
возвращаем
;список из первого эл-та L
и
;"обрезанного" хвоста L
)
)
Результат выполнения:
[4] (DELLAST '(a bc def))
(A BC)
Определите предикат (функцию) ATOMLIST, проверяющий, является ли
предикат одноуровневым списком.
Функция:
(define (ATOMLIST L)
(cond
((null? L) t) ;true - если список пуст
((atom? (car L)) (ATOMLIST (cdr L)))
;если голова списка -
;атом - продолжаем
;проверку хвоста
(t nil)
)
)
Результат выполнения:
[1] (ATOMLIST '(a bc def))
#T
[2] (ATOMLIST '(a (bc def)))
()
Определите функцию ONION («луковица»), строящую N-уровневый вложенный
список.
Функция:
(define (ONION N)
(if (= n 0)
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »
