在Scheme中迭代

ark*_*ate 0 recursion scheme racket

假设我在Scheme中有一个列表列表,如下所示:

 (define a-list  (list (list a b) (list c d) (list e f) (list g h) (list i j)))
Run Code Online (Sandbox Code Playgroud)

我将如何定义一个消耗此列表的函数,以便我可以使用另一个函数来使用列表中的每个字母?

例如,我有另一个功能

(define (smorg a)
  (...))
Run Code Online (Sandbox Code Playgroud)

那么,我怎么去做smorg a,smorg b,smorg c ......?

Rya*_*per 6

你在用什么教科书?

如果答案是如何设计程序,那么请遵循设计配方.特别是,您需要一个数据定义; 数据定义用于生成模板,该模板告诉您如何正确获取递归.

如果您不使用HtDP,我强烈建议您阅读.该书可在线获取,网址:http://www.htdp.org/.然后按照设计配方.特别是,您需要数据定义等等.

在这两种情况下,这里有一个提示:永远,永远使用list功能你掌握递归之前.不在你的功能中,甚至在你的例子中也没有.它阻碍了你.使用cons和构建列表empty.