2013-03-28 2 views
1

Я пытаюсь написать процедуру, которая определяет поток всех целых чисел, которые не divisble либо 2, 3 или 5. Это то, что я писал:Схема не делится

(define not-d 
    (stream-filter (lambda (x) (not (divisible? x (and 2 3 5)))) 
       integers)) 

и я испытываю это с:

(define (take n s) ;; list of first n things from stream s 
    (if (= n 0) 
     '() 
     (cons (stream-car s) (take (- n 1) (stream-cdr s))))) 

Однако это не сработает ... как я могу это исправить?

ответ

3

Это не будет работать на всех:

(not (divisible? x (and 2 3 5))) 

Попробуйте вместо этого:

(and 
(not (divisible? x 2)) 
(not (divisible? x 3)) 
(not (divisible? x 5))) 
Смежные вопросы