Çoğunlukla pratik bir adamım ama bunu ilginç buluyorum.Fonksiyonel Programlamada Dizilimi Anlama
Monadik sıralama hakkında düşünüyordum ve açıklığa ihtiyacım olan birkaç adet var. Yani aptal görünme riski burada öyle:
bind :: m b -> (b -> m c) -> m c
size ara değerlere açık erişim sağlayarak "eylemleri" sırası olabilir
monadic üye bağlanır. Ben sırası olabilir Bununla
(.) :: cat b c -> cat a b -> cat a c
ve ara değerlere erişebilirsiniz:
Bu nasıl kategorik üye(.)
bana daha fazla veriyor. Tüm
(f . g) x = f(g (x))
.
(.)
ile sıralı hale getirebiliyorsam, sıralama için neden bind
'a ihtiyacım var?
'arasında monadik versiyonu' (> =>) :: Monad m => (.) Ile (a -> mb) -> (b -> mc) -> (a -> mc) ', Kleisli bileşimi. –
Bu size * daha az * verir. C (a, b) = a -> m b ',' bind 'terimiyle bir kategori oluşturur ve kimlik olarak "döndür", "m" nin Kleisli kategorisi *. –
Ayrıca 'f (g x)' 'g x''de ilk önce olması gerektiği doğru değildir. Bu sadece katı anlamlar altında doğru olurdu. Ancak, durduğu gibi, daha önce olsa da olmasa da olabilirdi. – Ingo