«monads» etiketlenmiş sorular

Programlamadaki bir monad, birleştirilebilir bir hesaplama açıklamasıdır. Monadlar, Haskell gibi işlevsel programlama dillerinde önemli bir yapıdır.

5
İndeksli monad nedir?
İndekslenmiş monad nedir ve bu monad için motivasyon nedir? Yan etkileri takip etmenin yardımcı olduğunu okudum. Ancak tip imzası ve belgeler beni hiçbir yere götürmüyor. Yan etkilerin (veya başka herhangi bir geçerli örneğin) takip edilmesine nasıl yardımcı olabileceğine dair bir örnek ne olabilir?
98 haskell  monads 

3
Haskell'de Control.Monad.Writer ile nasıl oynanır?
İşlevsel programlama konusunda yeniyim ve kısa süre önce Learn You a Haskell'de öğreniyorum , ancak bu bölümden geçerken aşağıdaki programa takılıp kaldım: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog :: Writer [String] Int multWithLog = do …
97 haskell  monads 

3
State, ST, IORef ve MVar arasındaki fark
48 Saat İçinde Kendinize Bir Şema Yazın üzerinde çalışıyorum (yaklaşık 85 saate kadar varım) ve Değişkenler ve Atamalar Ekleme kısmına geldim . Bu bölümde büyük bir kavramsal sıçrama var ve keşke doğrudan nihai çözüme atlamak yerine iki adımda iyi bir yeniden düzenleme ile yapılsaydı. Her neyse ... Ben aynı amaca …

3
mtl, transformers, monads-fd, monadLib ve seçim paradoksu
Hackage, monad transformatörler için çeşitli paketlere sahiptir: mtl : Monad trafo kütüphanesi transformatörler : Beton functor ve monad transformatörler monads-fd : İşlevsel bağımlılıkları kullanan Monad sınıfları monads-tf : tür aileleri kullanan Monad sınıfları monadLib : Bir monad transformatör koleksiyonu. mtl-tf : Tip aileleri kullanan Monad trafo kütüphanesi. mmtl : Modüler …

5
Düz Harita / Harita dönüşümü için anlama ile karıştırıldı
Map ve FlatMap'i gerçekten anlayamıyorum. Anlayamadığım şey, kavramak için bir eşleme ve flatMap'e iç içe geçmiş aramalar dizisi. Aşağıdaki örnek, Scala'daki Functional Programming'den alınmıştır. def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = for { f <- mkMatcher(pat) g <- mkMatcher(pat2) } yield f(s) && g(s) Çevirir def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = mkMatcher(pat) flatMap (f => mkMatcher(pat2) map …

5
Monadların kompozisyon altında kapatılmadığını gösteren somut örnek (kanıtla)
Kompozisyon altında uygulama işlevlerinin kapalı olduğu ancak monadların kapalı olduğu iyi bilinmektedir. Bununla birlikte, monadların her zaman beste yapmadığını gösteren somut bir karşı örnek bulmakta zorlanıyorum. Bu cevap , [String -> a]monad olmayan bir örnek olarak verir . Bir süre onunla oynadıktan sonra, sezgisel olarak inanıyorum, ancak bu cevap, gerçekten …

1
Devam Monadını Sol ve Sağ Bağlantılara Nasıl Çarpar?
Devlet monad Ürün (Sol - Functor) ve Okuyucu (Sağ Temsil Edilebilir) içine çarpanlarına ayrılabilir. Devam Monad'ı çarpanlarına ayırmanın bir yolu var mı? Kod aşağıda benim girişim, hangi tip kontrol alışkanlık -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) o …

2
Haskell'de İç içe Devletler
Bir çeşit farklı devlete sahip bir devlet makineleri ailesi tanımlamaya çalışıyorum. Özellikle, daha "karmaşık" durum makineleri, daha basit durum makinelerinin durumlarının birleştirilmesiyle oluşturulan durumlara sahiptir. (Bu, bir nesnenin aynı zamanda nesne olan çeşitli özniteliklere sahip olduğu nesne yönelimli bir ayara benzer.) İşte elde etmek istediğim şeyin basitleştirilmiş bir örneği. data …

1
Cont ile yapılamayan callCC ile ne yapabilirim?
Gerçekten gerçekten callCC'yi anlamakta zorlanıyorum. Sürekliliklerin gücünü alıyorum ve bazı projelerimde bu konsepti harika konseptler oluşturmak için kullanıyorum. Ama asla daha büyük yeteneklere sahip bir şey kullanmam gerekmedi cont :: ((a->r)->r)-> Cont r a. Kullandıktan sonra, Cont Monad'ı neden tüm monadların annesi olarak adlandırdıkları çok mantıklı, YET, ne zaman kullanmam …
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.