ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »