我正在尝试编写一个名为“p”的方案函数,其中一个参数 X 是字母列表。如果 a 的数量比 b 的数量少 1,则该函数应返回 true。这就是我所拥有的,但无法解决参数错误。任何帮助是极大的赞赏。
#lang scheme
(define p
(lambda (X)
(let ((countA 0))
(let ((countB 0))
(count(countA countB X)
(if (= countA (- countB 1))
#t
#f))))))
(define count
(lambda (A B X)
(if (null? (cdr X))
(car X)
((if (string=? "a" (car X))
((+ A 1) (p(cdr X)))
((if (string=? "b" (car X))
((+ B 1) (p(cdr X)))
(p(cdr X)))))))))