事情的起因是这样的,我在看 sicp 这本书,书中用函数(过程)实现了一种叫做 cons(序对)的结构,甚至用函数去实现了数字(一种叫做 church 计数的方式)。
于是我就在想能不能用函数去实现数组、对象。接下来我用 js 实现了数组和对象,顺便彻底理解了不可变数据结构是怎么一回事,大概相当于每次用都劫持掉“一部分函数”返回一个新的函数。
我制作了一个视频讲述了这个过程。
1
NoOneNoBody 23 小时 35 分钟前
这段文字,真的是不看视频不知道讲什么
PS:还没看视频 |
2
littephi 22 小时 51 分钟前 2
lambda 演算?它是图灵完备的。
|
3
Elaina 22 小时 38 分钟前 1
lambda 演算是这样的😇😇😇,和图灵机模型是等价的
|
4
bnrwnjyw 22 小时 21 分钟前 1
sicp 是经典
|
5
Donaldo 19 小时 48 分钟前 1
肯定是可以的,不过优势在哪里?每次进行函数调用的开销也不小吧。
|
6
MHPSY OP @NoOneNoBody 楼下有几位朋友说出来了 其实核心就是 lambda 演算
|
7
MHPSY OP @Donaldo
不需要告诉计算机怎么样去计算,只需要表示出来计算是怎样进行的。 实际应用中我目前能想到的优势就两个: 1. 不可变数据(相当于每次返回一个新的”函数“) 2. 高阶函数(用函数去构建函数) |
8
nagisaushio 13 小时 24 分钟前 via Android
@Donaldo 函数只是一种抽象方式,可以被编译器优化成高效的指令。haskell 编译后并不全是函数调用
|