我希望程序计算在表达式中找到特定子字符串的次数。我编写了以下代码,但我没有得到预期的输出。
(define (count-occurrences s slist)
(if (null? slist)
0
(+ (count-occurrences-in-s-sexp s (car slist))
(count-occurrences s (cdr slist)))))
(define (count-occurrences-in-s-sexp s sexp)
(if (symbol? sexp)
(if (eqv? sexp s) 1 0)
(count-occurrences s sexp)))
Input: (count-occur '(a x) '((x y z) x (z (a x) y)) )
Output: 0
Expected O/p : 1
Input: (count-occur 'x '((x y z) x (z (a x) y)))
Output: 3
Expected O/p : 3
当我提供list的输入时。我没有得到预期的输出。任何人都可以帮助我:/
答案 0 :(得分:0)
您希望使用equal?
代替eqv?
来确定两个列表是否相同。