oldhu's
Posts
11
Aug 2022
范畴论基础(9) - Writer Monad
提出问题 假设有一个half函数 half x = x `div` 2 这时候要连续执行两次就很容易,可以compose quarter = half . half 如果函数除了要除2,还要写一条日志,那怎么办? 不能在函数内直接写文件或控...
09
Aug 2022
范畴论基础(8) - Reader Monad
提出问题 假设有这样一个数据类型,用于存储一个应用的配置信息 data Config = Config { selectFirst :: Bool, greet :: String } 有两个函数都依赖这个配置 -- selectUserT...
29
Jul 2022
范畴论基础(7) - 基于Haskell重写例子
Haskell简介 Haskell (/ˈhæskəl/) is a general-purpose, statically-typed, purely functional programming language with type i...
28
Jul 2022
范畴论基础(6) - Applicative Functor
遗留问题 有一个遗漏了的函数签名,是 T[A -> B]。(在函数式编程里,函数是一等公民,函数本身也是一个值,所以也可以放进容器里) 有时候,一个方法也会被包装在容器中,还是以 Option<T> 为例: 假设一个业务,...
27
Jul 2022
范畴论基础(5) - Functor与Monad小结
Functor与Monad到底在做什么? Functor与Monad,是Category Theory中的概念。但是在实际编程中,这两个东西到底是什么? 通过之前的内容,可以给出两个在编程中非常不严谨的Functor与Monad定义: 有m...
25
Jul 2022
范畴论基础(4) - Monad
JavaScript中的flatMap方法(本质上)是什么? // [ [ 1, 1 ], [ 2, 2 ], [ 3, 3 ] ] const val1 = [1, 2, 3].map(i => [i, i]); // [ 1, 1...
← Prev page
Next page →