V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Origami404  ›  全部回复第 4 页 / 共 5 页
回复总数  83
1  2  3  4  5  
另外以我半吊子的 lisp 水平不知道 lisp 里的 call/cc 能否实现这种行为?
我跟朋友稍微讨论了一下,觉得这个行为难点主要有:
1. 析构不好做,控制流乱飞难理解
2. 可能当这个 lambda 被调用的时候定义它的函数(简称定义函数)跟调用定义函数的函数(简称调用函数)的栈帧都已经被弹出(这种情况可能出现在定义函数将 lambda 整体返回之后调用函数再将其返回直到调用调用函数的函数再调用 lambda )
3. 我朋友说 λ-expr 应该是无副作用的,而这个很明显是个副作用,所以哲学上不对味... (当然考虑 C++的 lambda 使用引用捕获外部变量再修改的情况可以得知其实存在有语言的 lambda 是可以有副作用的)

这种行为的实现方式我大概想了一下,可能使用 c++搭配 setjmp 跟 longjmp 可以实现,但是不一定能完美实现(可能会有一些对象的生命周期问题)。

如果能够完美实现的话其实还是有一定用处的,比如可以拿这种行为来实现整个程序级的“时间倒流”(做法类似于我上面提到的在上层函数调用下层函数定义的带 return 的 lambda )(就像 Vue 的调试工具那种)

随便想想,可能会有不足,欢迎大家指正
我也是,有时候会想怎么在一个 lambda 里直接让外层函数返回到外层函数调用者那里去,但是我不知道为什么这样做不可以(虽然好像这样子的话就得像 longjmp 一样搞,因为 lambda 可能被传出去然后在别的地方被调用之后控制流再返回到定义它的那个外层函数那里再返回)
2021-05-01 20:17:01 +08:00
回复了 xatest 创建的主题 分享创造 阿里味编程语言 pua-lang 正式发布!
@xinyana 绝了 233
看起来很好用,已 star 。等有空了好好研究一下
2021-02-18 23:57:29 +08:00
回复了 James369 创建的主题 程序员 任何的递归调用都可以转换为迭代吗?
更正:递归良基结构 --> 递归定义的良基结构
2021-02-18 23:56:13 +08:00
回复了 James369 创建的主题 程序员 任何的递归调用都可以转换为迭代吗?
@James369 广义的数学归纳法是包含结构归纳法的,后者可以对树形之类的递归良基结构做归纳证明,可以去看看维基百科的数学归纳法
2021-02-18 22:40:02 +08:00
回复了 James369 创建的主题 程序员 任何的递归调用都可以转换为迭代吗?
@hxndg
确实,看来我已经忘光了... ( lisp 白学

@James369
基本上就是找到语言结构的递归定义然后写一个递归的转换函数按结构匹配递归程序将其转换成迭代的就可以了(顺带一提多分支的递归对应的归纳法更精确地讲应该叫“结构归纳法”)
2021-02-18 22:18:00 +08:00
回复了 James369 创建的主题 程序员 任何的递归调用都可以转换为迭代吗?
@James369 可以手动用循环实现函数调用啊,模拟栈的进出就可以了,oi/acm 以前经常用的吧。
数学原理我不是很清楚,但我觉得它们本质上都是对自身的重复,递归可能比循环跟“基本”一点?
以及我猜测您可能觉得所有循环的空间占用都是与循环次数 n 无关的,因而觉得需要栈空间的递归能写成迭代很神奇,但其实只要如上文所说的那样模拟栈就可以简单地“翻译”过去了,只不过此时循环的空间占用是与 n 有关的一个函数罢了
2021-01-07 09:47:40 +08:00
回复了 googlai 创建的主题 问与答 哪位大佬知道好用的 wx 公众号文章 rss 订阅呢 付费也可以
推荐 WeRss,用了快一年了,很好用
2020-08-05 21:59:16 +08:00
回复了 ColinZeb 创建的主题 English 这是什么音标,看起来很好读的样子
我猜应该就是普通的音标然后写成字母的样子吧。。,比如∫写成 SH 之类的
2020-04-09 17:05:11 +08:00
回复了 revival83 创建的主题 健康 有老兄做过普通胃镜么?看别人反馈生不如死
做过一次。。感觉普通胃镜也没什么感觉。。甚至还能兴致勃勃地看看自己的胃。。。
2020-03-23 08:13:59 +08:00
回复了 Origami404 创建的主题 问与答 如何备份安装了 wsl1 的 Windows 10
@PhyllisLin PowerShell 里面 wsl --help 一下就能看到
2020-03-23 00:14:46 +08:00
回复了 Origami404 创建的主题 问与答 如何备份安装了 wsl1 的 Windows 10
@Cyshall @Osk @chizuo 谢谢,我明天试试
2020-03-23 00:14:16 +08:00
回复了 Origami404 创建的主题 问与答 如何备份安装了 wsl1 的 Windows 10
@mxalbert1996 到时候恢复有点麻烦啊...
2020-02-23 13:19:52 +08:00
回复了 mgrddsj 创建的主题 问与答 TIM Windows 版扫描硬盘?
我的 tim 也是这样...吓得我换 QQ 了
2020-02-07 21:06:29 +08:00
回复了 bhy5899s 创建的主题 问与答 I5-4210U 支不支持 VT-X 虚拟化呢?
win10 的 hyper-v 或者安全中心的内核虚拟化?
2019-12-14 17:53:57 +08:00
回复了 zhuwd 创建的主题 Electron 一个 electron 和 edge 的问题,请求大佬帮助
运行时开个兼容模式 vista 试试,之前 vs code 在 win7 上黑屏也是这么搞的
2019-11-30 20:30:34 +08:00
回复了 jason19659 创建的主题 问与答 小爱同学崩了?
我有朋友也有类似状况,就刚才
2019-10-26 18:56:30 +08:00
回复了 sunmker 创建的主题 Python 请问如何判断多个关键词是否都不存在于指定的字符串中
ac 自动机?
1  2  3  4  5  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2273 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 06:26 · PVG 14:26 · LAX 23:26 · JFK 02:26
Developed with CodeLauncher
♥ Do have faith in what you're doing.