第8章演習問題(P.101)
(define (my-any-pred . pred) (lambda (x) (define (my-any-pred-core preds x) (cond [(null? #?=preds) #f] [((car preds) x) #t] [else (my-any-pred-core (cdr preds) x)])) (my-any-pred-core pred x))) (define (my-any-pred . pred) (lambda (x) (cond [(null? pred) #f] [((car pred) x) #t] [else (apply my-any-pred (cdr pred))]))) (define (my-every-pred . pred) (if (null? pred) #f (lambda (x) (define (my-every-pred-core preds x) (cond [(null? preds) #t] [((car preds) x) (my-every-pred-core (cdr preds) x)] [else #f])) (my-every-pred-core pred x))))
できれば余計な関数は作りたくないので,下の方にしたいのだが,applyを使ったら再帰にならないので,上の方にしなければいけない.