这是我到目前为止所拥有的:
(DEFINE (swap lst)
(COND ((NULL? lst) lst)
(IF (lst --------))
))
我是Scheme的新手,所以我现在有点困惑。对于这个功能,我应该检查一些事情:
我的主要问题是如何检查我的列表以查看它是单个值还是多个值。
答案 0 :(得分:2)
检查列表是否没有元素很简单:
(null? lst)
现在,我们如何验证它是否只有一个元素?它与之前的情况非常相似,我们只是检查当前的元素是否为空列表:
(null? (cdr lst))
之后,问题的解决方案来自定义:
(define (swap lst)
(cond ((null? lst) lst)
((null? (cdr lst)) lst)
(else <do your thing>)))
对于最后一种情况,请注意cons
第二个元素到第一个元素,以递归方式处理列表的其余部分;还记得在这种情况下获得&#34;休息&#34;我们必须一次超过两个元素。