(似乎是很久前写的一篇草稿,看完整度还行先放出来)
I. 编程风格:
tmp = modify(tmp) vs modify(&mut tmp)
在编程中,对变量的修改,两种方式:
将变量传入函数中进行操作,如 tmp = modify(tmp);
将变量的指针/可变引用传入函数中进行操作,如 modify(&mut tmp)
当使用 tmp = modify(tmp) 进行操作时,如果在函数执行的过程中中断,tmp 是只读的,所以不会影响原始的 tmp 的值。而在使用后者的情况下,由于是直接操作变量的可变引用,如果在执行过程中中断了,就很难保证操作的完整性,难以恢复。
 
案例:函数式编程在实现容错、幂等、原子操作等方面的应用
 
在实际开发中,函数式编程的思想可以用于实现容错、幂等、原子操作等功能。例如在并发编程中,可以使用函数式编程的思想来实现原子操作,确保对变量的修改不会受到其他线程的影响。同时,对于需要保证每次操作结果相同的操作,如缓存、备份等,可以使用函数式编程的思想来实现幂等操作,从而提供更大的代码可靠性。
还有所谓的 CoW

PKGBUILD 的 $pkgdir $srcdir
再来一个例子,pkgbuild 的构建思路
你会发现都在对 $pkgdir 操作(
 
$pkgdir 就是一个 folder, 里面“模拟”了 host 的 folder 结构
你在里面构建乱炸都没事
pacman -U *.zst 就是最后把 zst 解压放进真正的 host 里
而且这样构建,pacman 可以记录一切文件的位置(广义的构造函数
原子,容错,幂等操作



fp 的不可变相关

然后这玩意有啥别的“用处”呢
git 开发一般是 fork + checkout 一个 dev 分支,修改完合并 / rebase / squash
(是不是一回事
 
Loading...
Steven Lynn
Steven Lynn
喂马、劈柴、周游世界
最新发布
我与 Dify 的半年
2025-3-9
我的2022年终小结
2024-11-9
记录雅思考试经历与一点学习心得
2024-11-9
Hackergame 2024 思路小结
2024-11-9
黑客松、日本、入职:我的2024下半年的总结
2024-11-9
NotionNext:基于Notion和NextJS的开源博客
2024-11-9