猫史档案馆


【求助帖】如何在kitten语言的递归函数内实现列表的遍历?

用户:Planet_CubePlanet_Cube查看:126 回复:3 评论:42 创建时间:2022-05-03T11:42:43


请一定要点进来帮帮我,很急!!!

最近我在尝试编写一个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 页 / 共 1 页下一页
𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

我选择:

center_image

注:列表l 第一个“0”的位置=100

点赞1


评论

执行过程: 列表l(字母) 第1项≠1 | 执行否则

返回(调用自身)| 函数再执行:列表l(字母) 第2项≠0(上面打错了) | 执行否则

进行调用自身直到 列表l(字母) 第l(参数)项=0

然后 返回(返回(返回(返回(返回(返回数值)))))。。。。。。。。。。。。。

输出(返回(...))

额,我的应用场景跟你的不太一样,有空的时候能跟我协作一下吗?

而且我的列表里面的内容是字符串

a。。。。。。。。。。我也不是太会用函数()

那直接 第x项=(字符)

哦······你似乎没有时间协作......

<()=()> 积木可以输入字符串

要不我把我积木发给你看看?

对了30%

随便

网址在这里https://shequ.codemao.cn/work/145044010

还是半成品,没有完成的

对于已经编写的积木有疑问的话可以问我


𝙲ℴ𝗌𝔦𝒹ₑ𝑟𝙲ℴ𝗌𝔦𝒹ₑ𝑟

a海龟积木是k3的,k4见不到了

点赞0


评论

捕捉

反捉你!

反弹))

↑-

你这涨赞的速度可以啊

a不行不行

最近‘赶’大作

没出作品

音乐社区刚康了康,这UI绝了

回头我帮你肝发帖,我在我的作品中研究出来了

屑黑帽忙着做自己的,都不过来帮忙

不过我得看看代码质量

我可不想面对bug坐一天)

小包就来过一次,苏星也就摸鱼()

我就差个帖子数量的克隆,其他都莫问题(我在我作品里做了个APPstore的功能,有一个评价(类似

画笔不好吗

是角色克隆……

。。。。。。。。一页只有几个帖子

514个不够?

其实判断也很简单,就是贴数>4时克隆4次,<4时克隆剩余贴数(话说在打字的过程中我似乎想到了一点灵感

是大于号和小于号,好像显示不出来?

如果最上面的克隆体y>=设定,移到最下面|显示帖子+1,克隆体打印列表(帖子列表第显示帖子到显示帖子+5)

打印没问题,不过其实好像不需要一直克隆

没错

换个帖子说


Planet_CubePlanet_Cube

我的想法是编写一个可编程的分形绘画程序

点赞0


评论