gpt4 book ai didi

scheme - 查找一个 s 表达式在另一个 s 表达式中出现的频率

转载 作者:行者123 更新时间:2023-12-01 13:48:39 25 4
gpt4 key购买 nike

我正在做一个小的个人项目来自学 Racket 。我目前正在创建一个接受两个 s 表达式的函数,并返回第一个表达式在第二个表达式中出现的次数。

如果我输入类似 1 和 '(1 2 3 1 2 3) 并返回 2,该程序将按预期运行,但不适用于 '(1 2)((1 2) 1 2 (1) (2) (1 2)) 应该返回 2。

这是我到目前为止的代码

(define (count item lst)
(cond ((null? lst) 0)
((= item (car lst)) (+ 1 (count item (cdr lst))))
(else (count item (cdr lst)))))

最佳答案

试试这个:

(define (count item lst)
(cond ((null? lst) 0)
((equal? item (car lst)) (+ 1 (count item (cdr lst))))
(else (count item (cdr lst)))))

请记住,= 用于比较数字。要进行更一般的相等比较,请使用 equal?。现在它按预期工作:

(count '(1 2) '((1 2) 1 2 (1) (2) (1 2)))
=> 2

关于scheme - 查找一个 s 表达式在另一个 s 表达式中出现的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33747957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com