如何返回具有不同值的列表?

jac*_*own 4 recursion scheme racket

如果我有以下列表:

(define thelist '(0 1 0 0 7 7 7))
Run Code Online (Sandbox Code Playgroud)

如何编写一个返回新列表的函数,在该列表中替换所请求单元格中的值.

例:

(set-cell thelist 2 4)
Run Code Online (Sandbox Code Playgroud)

这将返回具有相同值的新列表,但在单元格(2)中将存在值4而不是1:

(0 4 0 0 7 7 7)
Run Code Online (Sandbox Code Playgroud)

Joh*_*nts 5

HtDP为解决此类问题提供了一种非常具体的方法.对于这个问题,你的工作是写下列表的模板,然后盯着它,直到你可以看到递归调用的参数应该是什么,以及结果是什么.我希望你已经在列表上解决了一堆热身问题 - 计算列表的长度,计算列表中6的数量,等等.