只需1+1,我却造了门函数式语言

Needed 1+1, built a functional programming language

只需1+1,我却造了门函数式语言

为了完成一个将算术表达式转换为二叉树的数据结构作业,我原本只想写个简单的求值器。结果一发不可收拾,几天后我用 C 语言实现了闭包、垃圾回收器、自定义内存分配器、REPL 以及 FFI 等全套功能,最终诞生了 graphLang 这门函数式编程语言。文章详细记录了从最初简单的二叉树求值,到发现 C 标准库缺乏哈希表而被迫手写,再到为了解决内存碎片和指针失效问题而设计 Arena Allocator 和 Chunk 分配器,最后为处理递归调用导致的内存爆炸而构建垃圾回收器的全过程。这是一个典型的从“小需求”滑向“大工程”的极客故事,展示了底层系统编程的魅力与挑战。

我们需要的不仅仅是一个能计算 1+1 的求值器,而是一个能让用户在不触碰 C 代码的情况下定义自己的函数的完整系统。

同日更多故事

2026-09-30