ВУЗ:
Составители:
Рубрика:
37
входящий в оба списка и NIL, если такого элемента нет.
Функция:
(define (FirstCoincidence L1 L2)
(cond
((null? L1) ;NIL – если первый список пуст
nil)
((member (car L1) L2) ;если первый элемент
первого
;списка входит во второй
(car L1)) ;возвращаем этот элемент
(t
;иначе – применяем функцию
к
;хвосту первого списка
(FirstCoincidence (cdr L1) L2)
)
)
)
Результат выполнения:
[0] (FirstCoincidence '(a b c d) '(f g c d))
C
[1] (FirstCoincidence '(a b c d) '(f g h i))
()
Определите функцию, преобразующую список в множество, то есть удаляющую
повторения
элемента в списке.
Функция:
(define (List2Set L)
(cond
((null? L)
;если список пуст – возвращаем NIL
nil)
((member (car L)(cdr L))
;если голова входит в хвост –
выкидываем голову и
;применяем List2Set к хвосту
(List2Set (cdr L)))
(t
;иначе – голова не повторяется в
хвосте.Оставляем
;ее в множестве и применяем List2Set к
хвосту
(cons (car L) (List2Set (cdr L))))
)
)
Результат выполнения:
[1] (List2Set '(a b c a b c a b c))
(A B C)
Определите предикат, проверяющий совпадение двух множеств (независимо от
порядка следования элементов).
Функция:
(define (SetEQ X Y)
(cond
((null? X)
(null? Y))
((member (car X) Y)
(SetEQ (cdr X) (delete! (car X) Y)))
(t nil)
)
37 входящий в оба списка и NIL, если такого элемента нет. Функция: (define (FirstCoincidence L1 L2) (cond ((null? L1) ;NIL – если первый список пуст nil) ((member (car L1) L2) ;если первый элемент первого ;списка входит во второй (car L1)) ;возвращаем этот элемент (t ;иначе – применяем функцию к ;хвосту первого списка (FirstCoincidence (cdr L1) L2) ) ) ) Результат выполнения: [0] (FirstCoincidence '(a b c d) '(f g c d)) C [1] (FirstCoincidence '(a b c d) '(f g h i)) () Определите функцию, преобразующую список в множество, то есть удаляющую повторения элемента в списке. Функция: (define (List2Set L) (cond ((null? L) ;если список пуст – возвращаем NIL nil) ((member (car L)(cdr L)) ;если голова входит в хвост – выкидываем голову и ;применяем List2Set к хвосту (List2Set (cdr L))) (t ;иначе – голова не повторяется в хвосте.Оставляем ;ее в множестве и применяем List2Set к хвосту (cons (car L) (List2Set (cdr L)))) ) ) Результат выполнения: [1] (List2Set '(a b c a b c a b c)) (A B C) Определите предикат, проверяющий совпадение двух множеств (независимо от порядка следования элементов). Функция: (define (SetEQ X Y) (cond ((null? X) (null? Y)) ((member (car X) Y) (SetEQ (cdr X) (delete! (car X) Y))) (t nil) )
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »