«fold» etiketlenmiş sorular

İşlevsel programlamada, çeşitli şekillerde azaltma, biriktirme veya katamorfizm olarak da bilinen katlama, bir veri yapısına bir dönüşümü özyinelemeli olarak uygulayan ve onu bir özet değere "daraltan" bir tür üst düzey işlevdir.



7
Foldr veya foldl (veya foldl ') ile ilgili sonuçlar
İlk olarak, okuduğum Gerçek Dünya Haskell asla kullanmamayı foldlve kullanmamayı söylüyor foldl'. Bu yüzden ona güveniyorum. Ama ne zaman kullanacağım konusunda foldrpusluyum foldl'. Onların önümde farklı bir şekilde nasıl çalıştıklarının yapısını görebilsem de, "hangisinin daha iyi" olduğunu anlamayacak kadar aptalım. Sanırım her ikisi de aynı cevabı ürettiklerinden hangisinin kullanıldığının önemli …


4
sonsuz listelerle foldl ve foldr davranışı
İçinde myAny işlev için kod bu soru kullandığı foldr. Yüklem karşılandığında sonsuz bir listeyi işlemeyi durdurur. Foldl kullanarak yeniden yazdım: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item = p item || acc (Adım işlevinin argümanlarının doğru …

4
Katla ve azalt arasındaki fark?
F # öğrenmeye çalışıyorum ama katla ve indirgemeyi ayırt etmeye çalışırken kafam karıştı . Fold aynı şeyi yapıyor gibi görünüyor ancak fazladan bir parametre alıyor. Bu iki işlevin var olmasının meşru bir nedeni var mı yoksa farklı geçmişlere sahip insanları barındırmak için var mı? (Örneğin: C # 'da dize ve …

9
İşlevsel programlamadaki 'katlama' işlevine eşdeğer 'pitonik' nedir?
Haskell'de aşağıdakine benzer bir şeyi başarmanın en deyimsel yolu nedir: foldl (+) 0 [1,2,3,4,5] --> 15 Veya Ruby'deki karşılığı: [1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 Açıkçası, Python, reducekatlamanın bir uygulaması olan işlevi tam olarak yukarıdaki gibi sağlar, ancak bana 'pitonik' programlama yolunun, lambdamümkün olan yerlerde liste kavrayışlarını tercih ederek …

4
Sol tarafı ne zaman ve ne zaman sağa katlamayı kullanacağınızı nasıl anlarsınız?
Sol kıvrımın sola yaslanmış ağaçlar ürettiğinin ve sağa kıvrılmanın sağa yaslanmış ağaçlar ürettiğinin farkındayım, ancak bir kıvrıma uzandığımda, bazen ne tür bir kıvrım olduğunu belirlemeye çalışırken baş ağrısına neden olan düşüncede tıkılıp kalıyorum. uygun. Genelde tüm sorunu çözerim ve sorunuma uygulandığı şekilde katlama işlevinin uygulanmasına adım atarım. Yani bilmek istediğim …


3
Bu kelimeleri uygulamak katlamadan sonra bir işlem sonrası adım olmadan mümkün müdür?
Real World Haskell, bölüm 4, sayfa 98,words kıvrımlar kullanılarak uygulanıp uygulanamayacağını soruyor ve bu da benim sorum: Mümkün mü? Değilse, neden? Eğer öyleyse, nasıl? Ben her boşluk olmayan çıktı listesindeki son sözcüğe (bu otherwisenöbetçi olur ) başlaması gerektiğini ve bir boşluk emtpy kelimesinin eklenmesini tetiklemek gerekir fikrine dayanan aşağıdaki ile …

3
Birisinin foldlM tanımını bu şekilde yazması için ne tür bilgi veya eğitim gereklidir? [kapalı]
Kapalı . Bu sorunun daha fazla odaklanması gerekiyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Soruyu, yalnızca bu yayını düzenleyerek tek bir soruna odaklanacak şekilde güncelleyin . 8 ay önce kapalı . Son zamanlarda Haskell'i gerçek vaka üretim sistemimin bazılarında kullanmaya çalışıyorum. Haskell tipi sistem gerçekten …
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.