在“松散的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))

对于严格的幺半群算子,unitmult必须是同构。 “松懈”的影响是放弃这个要求。

例如,(直到通常的天真)(->) a是严格的幺半群,但[]只是松散的幺半群。

以上是关于在“松散的monoidal仿函数”中,“松散”是什么意思?的主要内容,如果未能解决你的问题,请参考以下文章

Python 松散正则表达式

Python 松散正则表达式

在 2 个空数组的这个松散相等比较中发生了啥

在C#中Elapsed是什麽意思?

exitcode 是什麽意思

C语言中的自动变量和寄存器变量是什莫?