标签
Cargocut 介绍了 'nel'——一个用于非空列表的轻量级 OCaml 库,并讨论了一项提案:将列表反转编码到类型中,从而显式追踪中间的反转构造不变量。
RacketCon 2026 是 Racket 编程语言社区的第十六届聚会,将于周六举行,届时提供直播,演讲内容涵盖记号表示法、Typed Racket 中的类型推断,以及通过新语言 Pille 实现的底层面向语言的编程。
一篇博客文章澄清了模块系统(OCaml)与 typeclass(Haskell、Rust)之间的异同,认为 typeclass 主要用于 ad-hoc 多态,而模块服务于模块化抽象;两者都能以一定代价部分地模拟对方。
ind-igo/bend-frontend 是一个用 Bend 编写的可组合 Bend 2 前端,只需对程序做一次类型检查,就能为任意后端生成类型化、可序列化的 Core.Program,包括 EVM(通过 bend-evm)和 WASM。
Edward Kmett 的 Turbo Haskell(THC)通过 Truffle/GraalVM 编译 GHC Core,支持全部 prim-ops、基于 Native Image 的 JIT 与 AOT 编译、面向 Python/Ruby/R/JavaScript 的多语言 FFI、SIMD、基于 Project Loom 的绿色线程,甚至还能编译 GHC 本身。
一篇深入探讨的博客文章(经授权转载自 Alexis King 2019 年的解析),澄清了 `foldl` 和 `foldr` 的区别在于结合律的方向,而非遍历方向,并探讨了这一区别在严格求值与惰性求值下产生的不同效果。
文章描述了开发者如何在C语言中构建函数式编程语言,从一个评估算术表达式的数据结构作业开始,并实现了闭包、垃圾回收器和REPL等功能。
Eli Bendersky 将‘Parse, don't validate’模式应用于 Rust,展示如何使用类型系统来强制不变量并提高代码清晰度,使用标准库和像 nonempty 这样的 crates 中的示例。
本文将Gary Bernhardt的'Functional Core, Imperative Shell'架构扩展为'确定性核心,非确定性外壳',强调确定性而非纯函数式主义,以提高软件系统的测试性和适用性。
Lambda MicroEgg 是一个实现 e-graph 的工具,支持范围明确的 α 感知绑定器和高阶 Miller 模式,用于程序合成和重写。
本文解释了为什么在编程语言中可变数据类型不能是不可变类型的子类型,使用里氏替换原则(Liskov substitution principle)和配对作为例子,以突出类型安全性和不可变性契约。
本文提供了Peter Henderson 1982年关于纯函数式操作系统的论文扫描版,该论文此前在网上难以获取。
本文解释了如何在不断发展的反应式用户界面中,通过使用 Datastar、glimmer、Domino 和 Ebb 等构建块来管理复杂应用状态,处理数据流、业务逻辑和外部集成。
本文提供了关于Haskell中惰性求值的指南,解释了其机制、对模块化代码的好处,以及分析空间和时间使用的方法。
这篇博客文章解释了如何通过 Nix 实现 MirageOS Unikernels 的可复现部署,结合函数式编程来构建更安全、更高效的网络应用,如 DNS 服务器。
本文展示了一种技巧,使用Haskell中的Church编码和可重绑定语法来实现无依赖类型的条件表达式,并通过简单类型推断证明其可行性。
本文探讨了在Rust中使用GADT风格枚举实现'tagless final'模式,展示了编译器如何通过擦除抽象来实现零成本性能。