文字のリストである 1 つのパラメーター X を持つ "p" というスキーム関数を作成しようとしています。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)))))))))