"Haskell'de" veya "Functor
" nu sorup sormadığınızı açıklığa kavuşturmak isteyebilirsiniz. Kategori Teori terimleri Haskell'de kullanıldığında hangi kategorinin varsayıldığı her zaman açık değildir. Evet, varsayılan varsayım, morfizma olarak işlev gören Haskell tipleri kategorisi olarak alınan Hask'dur. Bu durumda, Hask no'lu bir endofuntör F, F (A) tipi herhangi bir tip ve herhangi bir F tipi (A) ve (A) arasındaki iki fonksiyon arasında F (f) F (A) tipi herhangi bir fonksiyon için F (A) tipi herhangi bir fonksiyonu eşler.) ve F (B). O zaman f
tür * -> *
ile bir tür yapıcı bir tip (f a)
için her türlü a
map sadece bu endofunctors kendimizi sınırlamak durumunda
, o zaman tip (a -> b) -> (f a -> f b)
ile daha yüksek dereceden fonksiyonu olarak işlevler için ilişkili harita tanımlayabilir Tabii ki, Functor
olarak adlandırılan tip sınıftır.
Ancak kolayca böyle Either a t
için bir tür a
koyan bir functor olarak Functor
, bir örneği olarak (doğrudan) için yazılı olamaz HASK uslu endofunctors hayal edebilirsiniz. Bir functor fazla bir anlamı tamamen başka kategoriye HASK belli ki orada değil ederken, bu op Haskiçin HASK bir (kontravaryant) functor dikkate almak mantıklı. Bunun ötesinde
, Functor
örnekleri mutlaka böylece aynı zamanda bir kategori oluşturan bunun gibi bir kısmını üzerine tüm kategori Hask dan map. Ama aynı zamanda Hask alt kümeleri arasında numaralı funkörler hakkında konuşmak da mantıklı. Örneğin, Maybe a
türlerini [a]
'a gönderen bir joker düşünün.
Sen HASK yerine bunun tamamını varsayarak içinde gömülü bazı Kategori Teorisi esinlenen yapılar sağlar category-extras
package, incelemek isteyebilir.Hatta sonuçta eğer
http://www.cs.nott.ac.uk/~txa/publ/Relative_Monads.pdf
"Nerede E" ... den önce eksik kelime var mı? – kennytm