相关疑难解决方法(0)

Monads不是"flatMap"而是"flatUnit"?

类别理论中的Monads由三元组T,单位,平坦 defined定义.

class Monad t where
  map :: (a -> b) -> (t a -> t b) -- functorial action
  unit :: a -> t a
  flat :: t (t a) -> t a

class KleisliTriple t where
  unit :: a -> t a
  flatMap :: t a -> (a -> t b) -> t b
Run Code Online (Sandbox Code Playgroud)

KleisliTriple由运营商展示结构:( flatMapbind在Haskell中)由map和的组成flat.

但是,我总是认为在函数式编程中理解和实现Monad概念更加简单和容易,通过将结构与对象(例如flatUnit,unit和的组合)展平来构成函数flat.

在这种情况下,flatUnit(flatUnit(x)) = flatUnit(x).我实际上是用这种方式在JavaScript中实现的,并且使用flatUnit和 …

javascript monads haskell functional-programming category-theory

-9
推荐指数
1
解决办法
412
查看次数