«functional-programming» etiketlenmiş sorular

Fonksiyonel programlama, çıktıları program durumundan ziyade girdileri ile belirlenen fonksiyonların zincirli değerlendirmesi ile hesaplama problemlerini çözmeye çalışan bir paradigmadır. Bu programlama tarzında, yan etkiler ve değişken veriler kullanımdan kaldırılmıştır ve genellikle kesin olarak izole edilmiştir.

3
Scala ve LWJGL kullanarak basitleştirilmiş bir oyun için Fonksiyonel Programlama yaklaşımı
Java zorunlu bir programcısı olarak, Fonksiyonel Programlama tasarım ilkelerine (özellikle Referans Şeffaflığı) dayalı Space Invaders'ın basit bir versiyonunun nasıl oluşturulacağını anlamak istiyorum. Bununla birlikte, bir tasarımı her düşünmeye çalıştığımda, aşırı değişkenliğin, işlevsel programlama safları tarafından kapatılan aynı mutabilitenin tacizinde kayboluyorum. Fonksiyonel Programlamayı öğrenmek için, Scala'da LWJGL kullanarak çok basit bir …

2
Değişmez verilere sahip dillerde çift bağlantılı veya dairesel veri yapıları üzerindeki işlemleri uygulamak için geçici çözüm
Haskell'de nasıl grafik yapılacağını ve üzerlerinde bazı yerel işlemleri nasıl yapacağımı öğrenmek istiyorum, ancak soru Haskell'e özgü değil ve grafikler yerine iki kat bağlantılı listeleri düşünebiliriz. Soru: Çift bağlantılı bir liste (veya başka bir çift bağlantılı veya dairesel veri yapısı) ve üzerinde işlem yapılmasını, değiştirilemez veri yapılarını (Haskell, Clojure vb.) …

2
Argümanın gerekebilecek veya gerekmeyebilecek bir şey olduğunu bildiğiniz durumlarda, İsteğe Bağlı yöntem argümanı olarak kullanılmamasının bir nedeni var mı?
Java 8 ile Option / İsteğe bağlı kullanımı hakkında daha fazla makale gördüm. Neyi temsil etmeye çalıştıklarını anlıyorum ve bunların birçok örneğinin geri dönüş olarak kullanıldığını görüyorum. Ancak ben görmüyorum onları varsayılan / isteğe bağlı parametreler sözdizimi olmayan dillerde yöntem / işlev bağımsız değişkenleri olarak kullanılıyor. OptionalArgümanın gerekli olabilecek veya …

3
Referans Şeffaflığını Kırma Yan Etkileri
Scala'daki Fonksiyonel Programlama , bir yan etkinin referans şeffaflığını kırma üzerindeki etkisini açıklar: referans şeffaflığın bir miktar ihlali anlamına gelen yan etki. Bir programı değerlendirmek için “ikame modelinin” kullanımını tartışan SICP'nin bir bölümünü okudum . Ben şöyle kabaca referans saydamlığını (RT) ile ikame modeli anlamak, onun en basit bölüme bir …


2
Devleti atamadan sürdürme
İşlevsel programlamayı öğreniyorum ve bazı özel senaryoların ödev kullanmadan nasıl uygulandığını anlamada sorun yaşıyorum. Aşağıdaki basit problem kafa karışıklığımı özetliyor. Belirli bir veri yapısındaki değişikliklerle ilgili olayları alan ve bu veri yapısı belirli bir duruma ulaştığında olayları yayan bir program yazın. Bu yüzden benim koruduğum veri yapısının bir kopyası var …

5
Bu problemin saf işlevsel bir çözümü, zorunluluk kadar temiz olabilir mi?
Python'da şöyle bir egzersiz yapıyorum: bir polinom, güçler indeksler tarafından belirlenecek şekilde bir dizi katsayı olarak verilir, örneğin: (9,7,5), 9 + 7 * x + 5 * x ^ 2 anlamına gelir verilen x için değerini hesaplamak için bir fonksiyon yazın Son zamanlarda fonksiyonel programlamaya başladığım için yazdım def evaluate1(poly, …

4
Katlamadaki fonksiyonel argümanın adı nedir
Üst düzey işlevde katla / azalt işlevi işlevsel bağımsız değişkenin adı nedir? Satırların basit analizler (bir sütunun minimum, maksimum, ortalamasını bulmak gibi) üretmek için katlandığı bir monadik tablo işleme kütüphanesi üzerinde çalışıyorum. Bu nedenle, foldfonksiyonun argümanı için sağlam bir isim arıyorum ve ML topluluğunda (veya Haskell veya Common Lisp) ikinci …

2
Hesaplamayı yan etkilerden ayırdığımızda “dünyayı sorma” kodunu nereye koyacağız?
Göre Komut Sorgu Ayırma ilkesi yanı sıra Veri Düşünce ve Clojure ile DDD biri, hesaplamalar ve kararlarından (dünyanın değiştirme) yan etkileri ayırmak gerekir sunumlar yüzden her iki bölümü anlamak ve test etmek daha kolay olacağını. Bu cevaplanmamış bir soru bırakıyor: "dünyayı sormayı" sınır olarak göreceli olarak nereye koymalıyız? Bir yandan, …

7
Ekibinizi fonksiyonel kodlama stiline nasıl tanıtırsınız?
Grubumdaki çoğu insanın fonksiyonel programlama hakkında çok az bilgisi olan veya hiç olmayan bir nesneye yönelik programlama geçmişinden geldiği bir durumum var. Kapaklar gibi temel bilgiler bile yok. Onları fonksiyonel kodlama stiline tanıtmanın iyi bir yolu hakkında herhangi bir öneriniz var mı? Özel durumlarımız için fonksiyonel yolu yaparsak yaptığımız birçok …

3
Uzun durum değişken listesine karşı uzun parametre listesi
Bir C ++ kitabında yazar, parametrelerin çoğunun bir sınıftaki durum değişkenlerine dönüştürülebildiği için artık uzun parametre listesiyle bir işleve ihtiyacımız olmadığını söylüyor. Öte yandan, işlevsel bir programlama kitabı durum değişkenlerinin kötü olduğunu, çünkü hataya eğilimli ve kodun paralelleştirilmesi zor olan yan etkilere neden olduğunu söylüyor. Şaşkınım. Kod, durum değişkenini işlev …

4
STDOUT ve safsızlığı
Fonksiyonel programlama hakkında birçok kitap ve makale okudum ve hala bazı çok temel kavramları kesin olarak anlayamamaktan utanıyorum. Fonksiyonel programlamanın ana fikirlerinden biri, aynı girdinin daima aynı çıktıyı üretmesidir. Bu nedenle, diyelim ki, veritabanı sorgulama veya dosya yazma, tanım gereği tamamen işlevsel bir tarzda yapılamadı. Örneğin, monadlara ihtiyacımızın nedenlerinden biri …


3
Fonksiyonel programlama dillerinin derleme zamanı optimizasyonu için daha fazla fırsatı var mı?
"Gerçek Dünya için Fonksiyonel Programlama" kitabını okuyordum. Zorunlu ve fonksiyonel programlama dilleri arasındaki karşılaştırma ile başladı. Ve fonksiyonel programlamadaki 'değerler' ve 'ifadelerin' zorunlu programlamanın 'değişkenler' ve 'işlevler' den ne kadar farklı olduğunu belirtti. Tartışmadan bir çeşit fikir geliştirdim - İşlevsel programlama dilleri, derleme zamanı optimizasyonunu zorunlu olan meslektaşlarına göre daha …

6
İşlevsel bir programlama dili almalı mıyım?
Son zamanlarda kodumu yazma yolu hakkında daha fazla endişe duydum. Tasarım kalıpları hakkında birkaç kitap okuduktan sonra (ve bunların çok fazla uygulanması, eminim) düşüncemi değişen olanı kapsüllemeye doğru kaydırdım. Daha az arayüz ve daha metod odaklı kod yazdığımı fark ettim, burada yaşamı tahminler, eylemler ve diğer delege görevleri ile eski …

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.