假设我在Scheme中有一个列表列表,如下所示:
(define a-list (list (list a b) (list c d) (list e f) (list g h) (list i j)))
我如何定义一个消耗此列表的函数,以便我可以使用另一个函数来使用列表中的每个字母?
例如,我有另一个功能
(define (smorg a)
(...))
那么,我怎么去做smorg a,smorg b,smorg c ......?
答案 0 :(得分:6)
你在用什么教科书?
如果答案是如何设计程序,请按照设计方法进行操作。特别是,您需要一个数据定义;数据定义用于生成模板,该模板告诉您如何正确获取递归。
如果您没有使用HtDP,我强烈建议您阅读。这本书可以在线获取:http://www.htdp.org/。然后按照设计配方。特别是,您需要数据定义等等。
在任何一种情况下,这里都有一个提示:从不,永远在掌握递归之前使用list
函数。不在你的功能中,甚至在你的例子中也没有。它阻碍了你。使用cons
和empty
建立您的列表。
答案 1 :(得分:2)
请务必了解list?
,map
,car
和cdr
的用途。它们可能有用。