尝试为 Scheme 创建过滤函数
Trying to Create a filter function for Scheme
所以我有
(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)))
所以基本上你传递了类似 (filter even? '(1 2 3 4)) 和它 returns 2 和 4.filter: arity mismatch 是给出的错误。
您忘记传递 func
谓词,并且没有将您的函数命名为 filter
,这与内置过程冲突。试试这个:
(define (my-filter func lst)
(countNumber (filter func lst))
所以我有
(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)))
所以基本上你传递了类似 (filter even? '(1 2 3 4)) 和它 returns 2 和 4.filter: arity mismatch 是给出的错误。
您忘记传递 func
谓词,并且没有将您的函数命名为 filter
,这与内置过程冲突。试试这个:
(define (my-filter func lst)
(countNumber (filter func lst))