scheme - 函数 count 应接受两个参数 : an atom and a simple list. 该函数应返回在列表中找到原子的次数

标签 scheme racket

我是计划新手,并已将这个问题作为家庭作业。我不知道如何在方案中保持运行计数,这就是我需要帮助的部分。

问题又来了:

函数 count 应该接受两个参数:一个原子和一个简单列表。该函数应返回在列表中找到原子的次数。

这是我到目前为止所拥有的:

(define (count atm lst)
    (cond
        ((null? lst) 0)
        ((eq? atm (car lst)) (i don't know how to make a count) (count atm (cdr lst)))
        (else (count atm (cdr lst)))))

任何帮助将不胜感激!

我仍然不明白需要做什么来增加函数每次迭代的列表中找到原子的次数。

这是我老师给我的测试用例: (计数“约翰”(约翰·保罗·乔治·林戈))

应该返回 2。

我已经关注这个问题足够长的时间了,请解释一下如何使计数工作。

最佳答案

我的 friend ,你非常接近这个问题的答案。为了解决这个问题,你需要编写一个测试用例。您需要编写测试用例的原因是您可以具体思考代码片段的含义。最具体地说,您需要考虑 (count atm (cdr lst)) 对于您正在考虑的特定输入的计算结果,然后考虑正确的答案是什么,以及它们如何有关联。

关于scheme - 函数 count 应接受两个参数 : an atom and a simple list. 该函数应返回在列表中找到原子的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796161/

相关文章:

functional-programming - 方案/ Racket : most idiomatic way to append single element to end of list

scheme - 在 Racket 中使用 peano 数进行划分

scheme - 在 Scheme 或 Racket 中何时使用函数以及何时使用宏

package - racket:获取包校验和

multithreading - Racket refresh-now, thread, and yield

recursion - 为什么Emacs lisp中没有尾递归优化,而不是像其他方案一样?

recursion - 小阴谋家 : write function that only supports lists of length ≤ 2

list - 如何在 Racket 中创建一个可以按照添加元素的顺序进行迭代的列表?

scheme - '(报价单)在方案中

ubuntu - 如何在 Ubuntu 的终端运行一个 scheme 程序?