【发布时间】:2014-04-07 02:50:03
【问题描述】:
有人请帮我完成这个功能吗?
使用类似于交换递归版本的方案函数。
(reswap '((h i)(j k) l (m n o)))
应该返回
((k j) (i h) (n m o) l) ;
和
(reswap '((a b) c (d (e f)) g (h i)))
应该返回
(c (b a) g ((f e) d) (i h)))
【问题讨论】:
-
您尝试过什么吗?如果是,请展示您的尝试。
-
你能看一下吗? (DEFINE(rswap lst) (COND ((or(NULL?lst) (NULL?(CDR lst))) lst) ;如果列表为空或单个元素,则返回该列表 (ELSE (CONS (CONS(CDR(CAR (CDR lst)))(CAR(CAR(CDR lst)))) (CONS (CDR(CAR lst))(C$ ;获取第二个元素,然后添加第一个元素 (rswap (CDDR lst)) ))) ))
标签: scheme