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 ( , , 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:CC(C,,I)σ:AF(B)F(AB)F

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

  • F:CDϕiF(AB)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:(AB)(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(gF(g)(a))
FABAFB.
FAFA
FAFBAFFB.
FFBFB
FBAFAFB,
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.