设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: kklt
打印 上一主题 下一主题

[有事请教] 为什么push进去都是undifineied

[复制链接]

Lv4.逐梦者

梦石
0
星屑
13559
在线时间
2753 小时
注册时间
2014-10-4
帖子
756

R考场第七期纪念奖

11
发表于 2020-9-27 14:27:35 | 只看该作者
kklt 发表于 2020-9-27 11:37
抱歉,我没有讲清楚。
我为什么说循环和递归差别不大呢?看这里。(伪代码)
这里变量就都当作传引用的把 ...


递归本质并不是jump 而是call和ret
所以递归天然的保存了每一帧的信息
这是它和循环最大的不同
正因为它这个属性 所以很多过程用递归写起来非常自然
但是 我的意思是
假如 递归保存的信息并没有被保存的必要 那为什么要用递归而非循环呢?

并不是说 两个东西有相同点 所以可以随便换着用
重要的是 知道他们有共同点 更应该知道他们有不同点
所以区分对待 所以互相借鉴而不是互相替代

许多编程语言会把没有必要保存过程信息的递归优化成循环 例如尾调用优化
相同的 许多循环算法会人为的利用栈来保存过程信息 达到递归的效果

其实 我是更倾向于循环的
因为循环可以借助栈来达到递归能做的事情
但递归最大的缺点即效率是没办法优化的
不过递归写起来是真的舒服

递归是好 所以学习他的思想 而不是处处用递归
同理对其他
是我的拙见
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1854
在线时间
395 小时
注册时间
2014-7-7
帖子
264

开拓者

12
 楼主| 发表于 2020-9-27 15:26:26 | 只看该作者
本帖最后由 kklt 于 2020-9-27 15:28 编辑
SixRC 发表于 2020-9-27 14:27
递归本质并不是jump 而是call和ret
所以递归天然的保存了每一帧的信息
这是它和循环最大的不同


其实我觉得你说的很到点。

虽然说我这里的jump不是特指汇编里面的jump。
屑特,好吧还是我没讲清楚。
我这里这个jump,
一定要说是属于那里的话:
是来自一款指令式的程序小游戏 human resource manager,
其中不存在call,ret,也没有函数。所以里面的循环都是用jump来实现的
对于汇编,我虽然知道一些,但在你说出call和ret之前我甚至都不知道它们的存在。
我说的jump大概更像是一种组件。将它和一些代码组合,可以实现任何存在重复的问题(甚至以外的问题)
对,因为代码很多时候看起来就像是在跳转,这个跳转的就是我说的jump。
好吧,这确实有点想当然了。
也许可以用jump来写一个不同的版本。

点评

不同的环境给的积木不同 所以没必要必须找到相同的积木去搭 合适的就是最好的 是我一直想表达的意思  发表于 2020-9-27 15:51
call和ret也是组件呀 任何代码块都是 假如把不同功能的组件当作积木 编程不就是搭积木吗 积木的搭法就是编程的范式  发表于 2020-9-27 15:49
take is cheap
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1854
在线时间
395 小时
注册时间
2014-7-7
帖子
264

开拓者

13
 楼主| 发表于 2020-9-27 17:06:53 | 只看该作者
本帖最后由 kklt 于 2020-9-27 17:41 编辑
SixRC 发表于 2020-9-27 14:27
递归本质并不是jump 而是call和ret
所以递归天然的保存了每一帧的信息
这是它和循环最大的不同

不同的环境给的积木不同 所以没必要必须找到相同的积木去搭 合适的就是最好的 是我一直想表达的意思


yes,yes
我get了。

之前用js仿lisp,是考虑到可能读者不了解lisp。同时也是顺便借机尝试一下这个想法。

我说的jump大概更像是一种组件。将它和一些代码组合,可以实现任何存在重复的问题(甚至以外的问题)


妈淡,果然发言还是要在斟酌一下。
其实这句话,更偏向于指jump的泛用性。。
原话确实读起来会有点模糊。

点评

恩 理解 (我也就是随口一说 吧)  发表于 2020-9-27 17:21
take is cheap
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-20 19:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表