satgo1546’s ocean

Any sufficiently primitive magic is indistinguishable from technology.

对函数式编程的呼吁

本文最初发表在Ŝalenzo.RTFD.io
本文亦有下列语言版本:English
想象一下,如果一门编程语言没有赋值语句会怎样。
变量成了常量,循环永不结束,因为条件不变。
一切都朝着确定的方向发展,直到有一刻,函数开始嵌套调用自身。
程序流程要么跳转到自身,要么不跳转到自身——很像循环吧?
不同的是,每回调用都有了名字。

一旦递归是循环的唯一方法,一条普通程序员从来不敢踏入的道路便延伸开来。
不敢,当然是因为效率问题。我们总是为效率付出一切。
可程序员的效率也是一种效率。
心中所想之寄存器化为数据,位模式化为数字,链接化为列表。
抛弃了变化后,抽象奇幻而优雅地降临到了身边。

尊敬的读者:今天,我并不是想让各位用函数式风格编写每一个程序。
但在成功解决问题,抑或是无从着手之时,还请试试——如果变量都不可变又会如何。