У меня небольшая проблема с моей процедурой.Эта процедура берет список списков, и хотя его длина больше, чем 1, применяют процедуру минус, которая берет 2 списка и делает разницу. Это мой результат для проблемы с подмножествами наборов.Пример, что мне нужно:
args = ('(1)' (1) '(3))
длина! = 1 -> процедура (если (ноль? (Минус)'(1)' (1))))
-> рекурсия (sub (cdr args))
args = ('(1)' (3))
length! = 1 -> процедура (если (null? (минус '(1)' (3)))) -
# f end.
но моя программа делаетЯ не знаю, что и потом вернуть #t ...
(define sub
(lambda args
(if(= (length args) 1) #t
(if(null? ( minus (list-ref args 0) (list-ref args 1)))
(sub (cdr args))
#f))))
Исправлено:)
(define subsethood
(lambda args
(sub args)
))
(define (sub args)
(if(= (length args) 1) #t
(if(null? ( minus (list-ref args 0) (list-ref args 1)))
(sub (cdr args))
#f)))