在“松散的monoidal仿函数”中,“松散”是什么意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在“松散的monoidal仿函数”中,“松散”是什么意思?相关的知识,希望对你有一定的参考价值。
我知道Applicative
类在类别理论中被描述为“松散的monoidal仿函数”,但我之前从未听过“lax”这个词,而the nlab
page on lax functor是我根本不认识的一堆东西,re:bicategories and things我不知道我们在Haskell里关心过什么。如果它实际上是关于bicategories,有人可以给我一个plebian视图,这意味着什么?否则,这个名字的“松懈”是什么?
答案
让我们切换到Applicative
的monoidal视图:
unit :: () -> f ()
mult :: (f s, f t) -> f (s, t)
pure :: x -> f x
pure x = fmap (const x) (unit ())
(<*>) :: f (s -> t) -> f s -> f t
ff <*> fs = fmap (uncurry ($)) (mult (ff, fs))
对于严格的幺半群算子,unit
和mult
必须是同构。 “松懈”的影响是放弃这个要求。
例如,(直到通常的天真)(->) a
是严格的幺半群,但[]
只是松散的幺半群。
以上是关于在“松散的monoidal仿函数”中,“松散”是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章