AI Pulse
📡 X 信号

AI 写代码时代,函数式编程反而更重要了

函数式的精髓不是函数,而在于类型系统。 map/filter/reduce 作为技术细节是次要的,换成 for-loop 也行。Local Mutation 也 Ok,甚至有 FBIP(Functional but In-Place)技术,进一步模糊了传统命令式/函数式的代码。

原博用同事秒看懂的案例,在 Agentic Coding 时代已经弱化了,不仅难以构成对函数式代码的攻击,甚至是反过来启示着—— 如果代码不需要被人类开发者秒看懂,甚至不是他们来写,函数式编程是否可以通过 AI Coding 普及?

找 null 案例很棒,但一来现在 AI 排障,报错日志对人的理解复杂度,不一定影响 AI 表现。 二来,函数式的精髓是通过类型建模,让一定区域(特别是 Core 区域)的代码,从类型检查上就拒绝 null,强迫 null 的代码位置从 core 外推到 shell。

这是一种根本上的解决问题的思路,如果一个问题反复发生,则将它外推,远离核心,最好是边界上的薄适配(Adapter),出错就被抓住,且影响范围小。 这个模式叫 Functional Core, Imperative Shell。 它几乎在所有软件层次中都存在。

在编程语言设计与实现层面, Purely functional programming language(如 Haskell)的 Purely 体现在代码里的 IO type 其实是 data,最外层有个 system wrapper 在反复解释 IO type 为外部副作用,并将副作用结果提纯后恢复/重跑程序(Agent Harness 也是这样哦)。 在宏观的软件架构层面,六边形架构/整洁架构,也呈现同样的模式。

掌握函数式编程的精髓,理解它背后的思想,在 Agent 时代也能发挥重要作用。 不要轻视函数式编程,在 AI 时代,它是更重要了。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新