scheme - 我将如何编写一个接收树(表示为列表)并返回其元素基本上颠倒的列表的 Scheme 过程?
问题描述
我在编写一个采用树(表示为列表)并返回一个列表的 Scheme 过程时遇到问题,该列表的元素是树的所有叶子,按从右到左的顺序排列。
例如,如果我要调用:( leaves '(((1 2) (3 4)) ((1 2) (3 4))) )
我会得到:'(4 3 2 1 4 3 2 1)
到目前为止,我有以下内容,并且输出在技术上是正确的,但是括号存在问题:
(define (leaves givenList)
(if (null? givenList) givenList
(if (list? (car givenList))
(append (leaves (cdr givenList)) (cons (leaves (car givenList)) '()))
(append (leaves (cdr givenList)) (list (car givenList))))))
我打电话时的输出( leaves '(((1 2) (3 4)) ((1 2) (3 4))) )
是:(((4 3) (2 1)) ((4 3) (2 1)))
我需要去掉里面的括号,然后得到:'(4 3 2 1 4 3 2 1)
非常感谢任何帮助或见解。谢谢!
解决方案
推荐阅读
- ruby-on-rails - 如何合并不同的键?
- python - Dtype 方法的输出与 Expected 不对应
- c# - 在 C# 中创建平衡的图像拼贴
- react-native - React-native redux-saga 错误:takeLatest$1 需要 saga 参数
- c# - C++ 中的类 C# 通用模板类型约束
- path - 在函数中指定路径和子文件夹不起作用
- javascript - 我无法填充猫鼬深层子文档
- android - 如何让 exoplayer 从歌曲列表中播放媒体
- python - 将列表分配给 numpy 数组列作为重复的数字集
- mysql - if else 带有附加信息的 sql