用户:
Planet_Cube查看:0 回复:0 评论:0 创建时间:2022-05-02T15:27:01
最近我在尝试编写一个Kitten程序,其中有一个递归函数,涉及对列表的遍历。
但由于Kitten不支持对列表的直接遍历,所以我们遍历列表时一般写成这个样子:
将变量(index)设置为0
重复执行(列表的长度)次:
将变量(index)的值增加(1)
将变量(i)的值设置为(列表)的第(index)项
从而完成对列表的遍历。
但是!
如果在一个递归函数中呢?
积木代码或许是这个样子:
定义函数func:
······ #多余代码省略
重复执行(列表的长度)次:
将变量(index)的值增加(1)
将变量(i)的值设置为(列表)的第(index)项
······
func()
······
但这样行不通!
因为在函数执行完毕将要回溯到上一层函数时,变量index并不会跟着回溯。
于是就会导致变量index一直增加直到超出列表长度,接着kitten就会无情地报错。
那么能不能直接在这个函数开头的位置把变量index设置为0呢?
也不行!
因为在这里我们想要的是变量index能够回溯到递归从上一层次进入到这一层次的值,而不是简单的归零。
而在Py的环境下,由于Py提供了直接遍历列表的方法,用for i in (列表)的方法就可以了。
此时我灵机一动,想到kitten似乎提供了海龟函数积木,于是我打算开始学习它。
但当我看到这些字是,我才发现我是个小鸡淋鬼
很不巧,我正希望把这个作品发布出去。
怎么办?
解决办法如下:
第一种方案:用技术喵的头发给kitten增加遍历列表的新功能(备选方案,因为几乎不可能)
第二种方案:请一个很厉害的人教教我,球球了~(大佬帮帮我!)
希望有江湖高手能指点一二