簡體   English   中英

Monads = Functors + Idempotency (of type)?

[英]Monads = Functors + Idempotency (of type)?

在 Haskell 中,Monad 由 kleisli 三元組定義。

一般來說,在范疇論中,可以這樣說:

Monads = Functors + monadic 類型的冪等性(不是值)?

不,單子顯然不是冪等的:盡管有一個自然轉換的要求

mu_x : T(T(x)) -> T(x)

以這種方式選擇的兩個對象一般不會相等,即,

T(T(x)) = T(x)

通常不成立,甚至高達同構。

即使在 Haskell Monad的限制范圍內,也很容易看到這一點: Maybe (Maybe ())Maybe ()顯然是具有不同語義對象數量的不等類型; 忽略底部:

Nothing, Just () -- Maybe ()
Nothing, Just Nothing, Just (Just ()) -- Maybe (Maybe ())

或底部:

_|_, Nothing, Just _|_, Just () -- Maybe ()
_|_, Nothing, Just _|_, Just Nothing, Just (Just _|_), Just (Just ()) -- Maybe (Maybe ())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM