并阐述背后通用的函数式编程理论知识....API 文档中, 类型签名的语法有些"奇怪":
add: Number → Number → Number
我们结合 Ramda 的柯里化规则, 稍加推测, 可以将这个函数转换为TypeScript 的定义...Ramda 文档中的类型签名使用的是Haskell 的语法, Haskell 作为一门纯函数式编程语言, 可以很简洁地表达柯里化的语义, 相较之下, TypeScript 的表达方式就显得比较臃肿....) => Promise;
const ap: AP = (f) => fa => f.then(ff => fa.then(ff));
ap 或说 Apply 作为函数式编程中的一种常见抽象..., 有非常重要重要的学习意义, 但其抽象的解析超出本文范围, 在这里我们只聚焦于「是什么」, 暂不考虑「为什么」.