“加号”乘“加号”等于啥?

修改于06/0940 浏览脑洞实验室
之前在B站看到这样一个视频
【加号✖️加号?【lambda演算】-哔哩哔哩】 https://b23.tv/PpgXG4z
作为一个平时喜欢跟 C++、C# 还有逻辑架构死磕的独立游戏开发者,看完脑子里直接炸开了一个大烟花:我去还能这样玩
我们平时写代码,1 + 1 = 2 是天经地义的。但是在这个叫 Lambda 演算的神秘理论里:
​没有数字(没有 1,没有 2,甚至没有 0)
​没有逻辑(没有 TRUE 也没有 FALSE)
​没有内存状态,没有 if/else。
​这里只有一种东西,那就是:函数
​在这个世界里,数字 3 被定义为:“把某个操作连续执行 3 次的套娃函数”
而在这个逻辑下,【加号(加法算子)】 本身也就是一段由几个符号拼成的匿名函数
如果把“加号”这个函数,当成参数喂给另一个“加号”函数……它们居然可以通过疯狂的自我复制、坍缩、归约,最终凭空创造出新的算术规则
所以...我去,计算机!
这玩意儿不就是一个天然的、最硬核的沙盒编程游戏吗?
于是,我立马打开taptapMaker,手搓(实际上是AI搓)了第一版游戏原型,用积木拼图的方式表达 Lambda 演算——每个函数是一块拼图,变量、抽象、应用各有形状,像 Scratch 一样咬合在一起。你把 K 组合子拖出来,它是一个折叠好的小色块,双击展开就能看到内部的 λx.λy.x 结构。拼好之后点归约,看着积木自动拆解、替换、坍缩,最后吐出结果。关卡模式从身份函数 I 教起,一路解锁布尔、Church 数、加法乘法,每过一关就解锁一个新组合子当积木用
各位可以期待下成品哦
TapTap
TapTap
TapTap
6