猫史档案馆


【求助帖】如何在kitten的递归场景下做到对列表的遍历?

用户:Planet_CubePlanet_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似乎提供了海龟函数积木,于是我打算开始学习它。

但当我看到这些字是,我才发现我是个小鸡淋鬼center_image

很不巧,我正希望把这个作品发布出去。

怎么办?

解决办法如下:

第一种方案:用技术喵的头发给kitten增加遍历列表的新功能(备选方案,因为几乎不可能)

第二种方案:请一个很厉害的人教教我,球球了~(大佬帮帮我!)

希望有江湖高手能指点一二


回复

上一页1 页 / 共 0下一页