【发布时间】:2014-01-23 10:00:00
【问题描述】:
我刚开始学习 Scheme,我们开始学习匿名函数。我们正在学习如何递归 lambda,我了解递归单变量函数,例如查找阶乘,但是对于像下面这样的函数,我将如何做到这一点?
(define (two-list list1 list2)
(cond
[(empty? list1) empty]
[else (cons (string-append (first list1)(first list2))
(two-list (rest list1)(rest list2)))]))
在这里,我试图获取两个字符串列表并将它们逐个元素地组合在一起。
【问题讨论】:
-
我的错,我说得不够清楚。我们要做的就是将该代码转换为使用 lambda 的代码。我们正在学习 lambda 递归。
-
以上是已经使用
lambda,只是它隐藏在一些语法糖后面。我用等效代码更新了我的答案以反映这一点 -
哦,我现在看到了,谢谢!只是出于好奇,是否有可能使整个事情变成 lambda,比如在不定义任何东西的情况下使这个函数工作。
-
是的,可以仅使用匿名函数 (
lambdas) 来实现递归。查看Y-Combinator -
好的,我会读一读。如果不是太多工作介意对我拥有的功能进行操作,以便我可以参考吗? :)
标签: scheme