list - 如何在 Lua 中有嵌套列表
问题描述
我试图从 99 lisp 问题中解决这个问题
展平嵌套列表结构。
通过将每个列表替换为其元素(递归),将列表(可能将列表作为元素保存)转换为“平面”列表。
例子:
(my-flatten '(a (b (c d) e)))
(A B C D E)
提示:使用预定义函数列表并追加。
问题是,我不知道如何创建该嵌套列表,因此我可以尝试自己将其展平。请帮忙谢谢
解决方案
在 Lua 中,“可能将列表作为元素保存的列表”只是一个可能将表作为元素保存的表格。
来自 Lua 手册:
表可以是异构的;也就是说,它们可以包含所有类型的值(nil 除外)。
...
像索引一样,表字段的值可以是任何类型
这当然包括表格。
最简单的情况是local t = {{}}
或对于提到的例子(a(b(cd)e))local t = {a, {b, {c, d}, e}}
假设 a,b,c,d 和 e 是字符串,您的列表将如下所示:
local t = {"a", {"b", {"c", "d"}, "e"}
推荐阅读
- php - 初学者:cakephp 3.6 安装 cakedc/users
- google-maps - 如何删除 Google 地图上的两个版权声明之一?
- html - 如何创建一个表格,第一列的宽度设置为适合内容,其余的在整个容器宽度上等间距?
- python - Paramiko 关闭连接不起作用
- git - 如何将所有分支推送到新创建的存储库?
- r - S4 方法在另一个包中也设置时失败
- c# - 当列表视图是“instagram 设计的”时,如何通过单击获得整个班级?
- vba - 想不通为什么会有错误
- reactjs - React 16.3 上下文:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象
- eclipse - Yocto Project SDK 插件无法为 Eclipse Oxygen 安装