Giải thích functor ứng dụng theo thuật ngữ phân loại - functor đơn hình


40

Tôi muốn hiểu Applicativevề lý thuyết thể loại.

Các tài liệu cho Applicativebiết rằng đó là một functor đơn hình lỏng lẻo mạnh mẽ .

Đầu tiên, trang Wikipedia về functor đơn hình nói rằng một functor đơn hình là lỏng lẻo hoặc mạnh mẽ . Vì vậy, dường như với tôi rằng một trong hai nguồn là sai hoặc họ sử dụng các thuật ngữ khác nhau. Ai có thể giải thích điều đó?

Thứ hai, các thể loại đơn hình trong số đó Applicativelà functor đơn hình là gì? Tôi giả sử rằng functor là endo-functor trong danh mục Haskell tiêu chuẩn (object = type, morphism = function), nhưng tôi không biết cấu trúc đơn hình trong thể loại này là gì.

Cảm ơn vì sự giúp đỡ.

Câu trả lời:


35

Thực tế có hai cách sử dụng từ "sức mạnh" trong trò chơi ở đây.

  • Một endofunctor mạnh trên một monoidal loại ( C , , tôi ) là một mà đi kèm với một sự thay đổi tự nhiên σ : Một F ( B ) F ( A B ) , đáp ứng một số điều kiện chặt chẽ đối với với cộng tác viên mà tôi sẽ che đậy. Điều kiện này đôi khi cũng được phát âm là " F có một sức mạnh".F:CC(C,,I)σ:AF(B)F(AB)F

  • F:CD(C,,I)(D,,J)ϕ:F(A)F(B)F(AB)i:JF(I), một lần nữa thỏa mãn một điều kiện gắn kết đối với các nhà quản lý.

  • F:CDϕiF(AB)F(A)F(B)ϕ

Một functor ứng dụng, theo nghĩa của các chương trình Haskell, là một endofunctor đơn hình lỏng lẻo với một sức mạnh , với cấu trúc đơn hình trong câu hỏi là các sản phẩm của Cartesian. Vì vậy, đây là lý do tại sao bạn có được thuật ngữ nghe có vẻ nghịch lý "functor mạnh mẽ lỏng lẻo".

Fmap:(AB)(F(A)F(B))

Cuối cùng, nếu bạn quan tâm đến lý thuyết loại functor theo kiểu Haskell, tôi vừa viết blog về nó.


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

1
Tôi đã có một lỗi đánh máy trong câu trả lời này - hiện đã được sửa. Và có, tất cả các trường hợp Functorlà mạnh mẽ (sản phẩm wrt).
Neel Krishnaswami

Bạn có thể vui lòng cũng giải thích Monad đứng ở đâu? Nếu tôi hiểu đúng thì đó cũng là một endofunctor đơn hình.
egdmitry

Hask

Tôi có thể đề xuất sử dụng từ mạnh mẽ để tránh xung đột ký hiệu với "mạnh" không? Đó là một biến thể biện chứng "mạnh mẽ" của Scotland (đặc biệt là tại chỗ), lần đầu tiên được sử dụng trong Kinh thánh của Wycliffe.
Fosco

3

Để hiểu về Ứng dụng, do một đơn nguyên gây ra, tôi muốn chỉ ra cách xây dựng sau:

FAnat(Hom(A,B),FB)

a(gF(g)(a))
FABAFB.
FAFA
FAFBAFFB.
FFBFB
FBAFAFB,
LiftM2 id
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.