Uygulamalı functorün kategorik olarak açıklanması - monoidal functors


40

ApplicativeKategori teorisi açısından anlamak isterim .

Dokümantasyon için Applicativeo olduğunu söylüyor güçlü gevşek monoidal funktoru .

Öncelikle, monoidal fonksiyon göstericileri hakkındaki Wikipedia sayfası bir monoidal fonksiyon göstergesinin ya laks ya da güçlü olduğunu söylüyor . Bana öyle geliyor ki kaynaklardan biri yanlış, ya da terimleri farklı kullanıyorlar. Bunu açıklayan var mı?

İkincisi, Applicativemonoidal functors olan monoidal kategorileri nelerdir? Functorların standart Haskell kategorisinde endo-functor olduğunu varsayıyorum (nesneler = türler, morfizmler = işlevler), ancak bu kategorideki monoidal yapı ne olduğu hakkında hiçbir fikrim yok.

Yardım için teşekkürler.

Yanıtlar:


35

Oyunda burada "güç" kelimesinin iki kullanımı var.

  • Bir güçlü endofunctor üzerinde monoidal kategorisi ( Cı , ⊗ , I ), bir doğal dönüşüm ile birlikte biridir σ : Bir ⊗ F ( B ) → F ( A ⊗ B ) , ile ilgili uyuşma koşulları karşılayan Parlayacağım asistanı. Bu durum bazen " F'nin bir güce sahip olduğu " şeklinde de ifade edilir .F:C→C(C,⊗,I)σ:A⊗F(B)→F(A⊗B)F

  • F:C→D(C,⊗,I)(D,⊕,J)ϕ:F(A)⊕F(B)→F(A⊗B)i:J→F(I)yine birliklere ilişkin bir tutarlılık koşulunu yerine getirme.

  • F:C→DϕiF(A⊗B)≃F(A)⊕F(B)ϕ

Uygulayıcı bir işlev, Haskell programları anlamında, söz konusu monoidal yapı Kartezyen ürünler olmak üzere, mukavemete sahip bir laks monoidal endofunctordur . İşte bu yüzden paradoksu kulağa "güçlü lax monoidal functor" terimini veriyorsunuz.

Fmap:(A⇒B)→(F(A)⇒F(B))

Son olarak, Haskell tarzı uygulayıcı işlev türlerinin teorisi ile ilgileniyorsanız, ben sadece bunun hakkında blog yazdım.


1
Functorfmapϕipureipure' = \v -> fmap (\() -> v) (i ())i :: (Applicative f) => () -> f ()

1
Bu cevapta bir yazım hatası vardı - şimdi düzeltildi. Ve evet, tüm örnekleri Functorgüçlüdür (wrt ürünü).
— Neel Krishnaswami

Monad'ın nerede durduğunu da açıklayabilir misiniz? Eğer doğru anlıyorsam, aynı zamanda bir monoidal endofunctor.
— egdmitry

Hask

"Güçlü" ile yazım işaretinin çarpışmasını önlemek için güçlü kelimeyi kullanmayı önerebilir miyim ? Bu, ilk olarak Wycliffe'nin İncilinde kullanılan "güçlü" diyalektik bir varyasyondur.
— Fosco

3

Uygulayıcıyı anlamak, bir monad tarafından teşvik edildiği gibi, aşağıdaki yapıya dikkat çekmek istiyorum:

FAnat(Hom(A,B),FB)

a↦(g↦F(g)(a))
FA→BA→FB.
FAFA
FA→FBA→FFB.
FFBFB
FBA→FA→FB,
LiftM2 id
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.