«functional-programming» etiketlenmiş sorular

İşlevsel programlama, temel olarak işlevleri bir bilgisayar programı içeren hesaplamaları ifade etmek ve hesaplamalarını ifade etmek için araç olarak kullanan bir programlama paradigmasıdır.

1
Hangi sınıf veri yapıları kalıcı hale getirilebilir?
Kalıcı veri yapıları değişmez veri yapılarıdır. İşlemler, veri yapısının yeni bir "kopyasını" döndürür, ancak işlem tarafından değiştirilir; eski veri yapısı değişmeden kalır. Verimlilik genellikle temeldeki verilerin bir kısmını paylaşarak ve veri yapısının tam kopyalanmasını önleyerek elde edilir. Sorular: Kalıcı olarak yapılabilecek veri yapıları sınıfları hakkında sonuçlar var mı (aynı veya …

3
'A ->' b tipi ML fonksiyonu
Profesörümüz bizden OCaml'de böyle bir işlevi düşünmemizi istedi 'a -> 'b yani bir argümanın herhangi bir şey olabilen ve farklı bir şey döndürebilen bir işlevi. raiseArgümanını göz ardı eden bir işlevde kullanmayı düşündüm : let f x = raise Exit Ancak profesör, standart kütüphanede herhangi bir işlev gerektirmeyen bir çözüm …

3
Bir dil homoikonik nasıl yapılır
Bu makaleye göre , aşağıdaki Lisp kodu satırı "Merhaba dünya" yı standart çıktıya yazdırır. (format t "hello, world") Homikonik bir dil olan Lisp, kodu veri olarak şu şekilde ele alabilir: Şimdi aşağıdaki makroyu yazdığımızı hayal edin: (defmacro backwards (expr) (reverse expr)) geriye doğru, bir ifadeyi (liste olarak temsil edilir) alan …

3
Programlama Dili Teorisinin incelenmesi
Son zamanlarda (fonksiyonel) programlama dillerinin yönlerini anlamak ve kanıtlamakla son derece ilgilenmeye başladım. Ancak daha derinlere daldığım zaman, hesabı, kategori teorisi ve anlamsal anlambilim gibi şeyleri doğru bir açıklama yapmadan yapmak biraz zor.λλ\lambda SICP'yi (oldukça aydınlatıcı bir kitap) okudum ama fonksiyonel programlama teorisinin derinliklerine dalmak istiyorum. Fonksiyonel programlama dillerinin teorisini …

1
Naif Set Polimorfik Lambda Kalkülüsünün Teorik Modelleri?
Philip Wadler'in Ücretsiz Teoremler makalesinde , Parametriklik Bölüm 2'de Polimorfik lambda hesabının naif set-teorik modeli yoktur Saf küme-teorik model türlerinde kümeler ve fonksiyonlar makul görünen küme-teorik işlevlerdir. Öyleyse neden polimorfik lambda hesabının naif set-teorik modeli olmadığını söylüyor?

3
Yalnızca işlevsel programlama için tasarlanmış bir CPU nasıl farklı olabilir?
CPU'lar, insanların dolaylı ya da açık bir şekilde onun için yazacakları yazılım dikkate alınarak tasarlanmıştır. Bana öyle geliyor ki, talimat seti mimarilerinin tasarımına bakarsanız, her talimatın bir zorunlu stil komutunu kodlaması anlamında çok "zorunludur". Bana öyle geliyor ki, mevcut talimat seti mimarileri kısmen programcıların ürettiği kod türüne göre gelişti. Biri, …



2
Yüksek Sipariş İşlevleri, İşlevsel Programlamaya daha fazla güç sağlıyor mu?
Benzer bir soruyu cstheory'de sordum . Stackoverflow'daki bu cevaba göre, tembel olmayan bir saf fonksiyonel programlama dilinde bir karmaşıklığına sahipken, zorunlu programlamada aynı algoritma Ω ( n ) olan bir algoritma vardır . FP diline tembellik eklemek algoritmayı Ω ( n ) yapar .Ω(nlogn)Ω(nlog⁡n)\Omega(n \log n)Ω(n)Ω(n)\Omega(n)Ω(n)Ω(n)\Omega(n) Yüksek Dereceli Fonksiyonlar ile …

2
CPU mimarileri prosedürel çalışma sürelerine karşı önyargılı mı?
Rust gibi eşzamanlı çalışma zamanlarında daha iyi performans göstermeleri için CPU'larda yapılabilecek herhangi bir değişiklik var mı? Örneğin, şube tahmin uygulamalarında veya önbellek boyutlarında eşzamanlı çalışma zamanlarına yardımcı olacak değişiklikler var mı? Mevcut CPU tasarımlarının C gibi prosedürel çalışma zamanları için daha iyi optimize edilebileceği izlenimine sahibim. Bunun yerine eşzamanlı …

1
IO monad teknik olarak yanlış mı?
Haskell wiki'de IO monadının koşullu kullanımına ilişkin aşağıdaki örnek vardır (buraya bakın) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Bu örnekte, her şeyin daha anlaşılır IO aolması RealWorld -> (a, RealWorld)için tanımının yapıldığını unutmayın …

3
'Ormansızlaşma' bir programdan 'ağaçları' nasıl kaldırır?
Ormansızlaşmanın aynı anda nasıl bir liste içerdiğini ve ürettiğini anlıyorum (bir katlama ve bir açılma işlevinden - CodeReview'da bu iyi cevaba bakın ), ama bunu ' teknikten ' wikipedia girişi ile 'kaldırma' ağaçlar 'bir programdan. Bir programın sözdizimsel ayrıştırma ağacına nasıl ayrıştırılabileceğini anlıyorum (bu doğru mu?), Ama programların bir tür …


2
Hızlı indeksleme, ekleme, başa ekleme, yineleme ile dizi benzeri değişmez (kalıcı) veri yapısı uygulaması
Hızlı indeksleme, ekleme, başa ve yineleme (iyi konum) işlemleri için izin dizi (ama değişmez) benzer kalıcı bir veri yapısı arıyorum . Clojure kalıcı Vektör sağlar, ancak sadece hızlı ekleme içindir. Scala'nın Vector'inin sabit zamanlı eklenmesi ve başlaması etkili bir şekilde var, ancak Clojure vektörü ile aynı veri yapısına (bit eşlemli …

1
“CPS” yaklaşımı SML / NJ'deki performansa büyük zarar verdi; muhakeme isteniyor
F # Öğrenme ile ilgili bir yorumda : Diğer programlama dillerini kullanan hangi kitaplar fonksiyonel kavramları öğrenmek için F # 'a çevrilebilir? Makarius şunları söyledi: "CPS" yaklaşımının SML / NJ'deki performansa büyük zarar verdiğini unutmayın. Fiziksel değerlendirme modeli, donanıma dahil edilmiş çok fazla varsayımı ihlal eder. Isabelle / HOL gibi …

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.