2015-02-04 24 views
0
創建過濾器功能

所以我要試圖對方案

(define (countNumber lats) 
    (let loop ((lats2 lats) 
    (count 0))(cond ((null? lats2) count) 
    ((number? (car lats2)) 
     (loop (cdr lats2) (+ count 1))) 
     (else (loop (cdr lats2) count))))) 

,我想做出一個過濾功能,即使是去像

(define (filter func lst) 
    (countNumber (filter lst))) 

所以基本上你像通(過濾器?'(1 2 3 4)),並返回2和4. filter:arity mismatch是給定的錯誤。

回答

0

您忘記了傳遞func謂詞,並且未命名函數filter,它與內置過程衝突。試試這個:

(define (my-filter func lst) 
    (countNumber (filter func lst))