Argüman olarak C ++ şablonları işlevlerini geçen kuralları arıyorum. Bu, burada bir örnekte gösterildiği gibi C ++ tarafından desteklenir: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " << temp …
Fonksiyonel programlama hakkındaki çeşitli makaleleri okurken birkaç kez 'Functor' terimiyle karşılaştım, ancak yazarlar genellikle okuyucunun terimi zaten anladığını varsayarlar. Web'e bakmak, aşırı teknik açıklamalar ( Wikipedia makalesine bakın ) veya inanılmaz derecede belirsiz açıklamalar (bu okaml-tutorial web sitesinde Functors bölümüne bakın ) sağladı . Birisi terimi nazikçe tanımlayabilir, kullanımını açıklayabilir …
Birisine X tipi bir sınıfın ne olduğunu açıklarken, tam olarak X olan veri yapılarına iyi örnekler bulmak için mücadele ediyorum. Bu yüzden aşağıdakiler için örnekler talep ediyorum: Functor olmayan bir tür oluşturucu. Functor olan ancak Uygulayıcı olmayan bir tür oluşturucu. Uygulayıcı olan, ancak Monad olmayan bir tür kurucu. Monad olan …
Kapalı. Bu soru Yığın Taşması yönergelerini karşılamıyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Stack Overflow için konuya uygun olması için soruyu güncelleyin . 4 yıl önce kapalı . Bu soruyu geliştirin F #, OCaml'den türetilmiştir, ancak hangi ana öğeler eksik veya eklenmiştir? Özellikle OCaml öğrenmek …
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Neden esasen aynı şeyi yapan üç farklı işleve sahibiz?
ApplicativeTypeclass temsil gevşek monoidal fanktorlar o yazdığınız fonksiyonları kategorisine kartezyen monoidal yapısını korumak. Başka bir deyişle, (,)monoidal bir yapı oluşturan tanık kanonik izomorfizmlere bakıldığında : -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, b), c) …