Fonksiyonel programlama ile ilgili erişilebilir kitap [kapalı]


17

Fonksiyonel programlamayı erişilebilir bir şekilde açıklayan bir kitap arıyorum. Ayrıca çok sıkıcı olmayan ve ezoterik bir dil kullanmayan birini tercih ederim.

İdeal olarak, fonksiyonel programlamanın zorunlu yaklaşımlardan daha zarif veya daha basit çözümlere yol açtığı durumları gösteren örnekler kullanır.

Makul miktarda programlama deneyimim var, ancak işlevsel programlama hakkında bilgim yok. Herhangi bir öneriniz için teşekkürler


3
"Ezoterik bir dil" kullanmak istemediğinizi söylediğinizde aklınızda bulunduğunuz belirli bir dil olup olmadığını merak ediyorum.
MatrixFrog

@MatrixFrog: "Ezoterik dil" ile Şema anlamına geldiğinden% 99 eminim. Muhtemelen SICP'in önerilen ilk kitap olacağının farkındaydı.
user16764

@ user16764 "Erişilebilir" mi? Bu , Bilgisayar Bilimi Müfredatının Yapısı ve Yorumunda yazar (lar) tarafından verilen gerekçeye dayalı olarak Programları (veya 2. baskıyı ) Tasarlamak olacaktır .
Mark C

Yanıtlar:


13

" Küçük Schemer " (ve belki de bundan sonra " Gerekçeli Schemer ") ile başlayacağım .

Şema'nın çok ezoterik olduğunu düşünüyorsanız veya Javascript'i seviyorsanız, Douglas Crockford alıştırmaların çoğunu Javascript'e çevirdi: http://javascript.crockford.com/little.html

C # 'dan hoşlanıyorsanız, Tomas Petricek'in " Gerçek Dünya Fonksiyonel Programlaması " başlamak için mükemmel bir yer olacaktır. Ayrıca F # için güzel bir giriş görevi görür.


10

Statik Yazılmış Diller ve [Parantez] 'i isterseniz:

Haskell, programlama paradigmasının saflığı konusunda oldukça ağır olmasına rağmen, henüz "Büyük İyilik İçin Bir Haskell Öğrenin!" Web sitesi ücretsiz olduğu için kitap formu isteğe bağlıdır, ancak bu hiç de azım hissetmediğim bir yazar. Gerçek Dünya Haskell iyidir ama gerçekten [Learn..Good] 'u takip etmek için daha iyi alınır. RWH ayrıca isteğe bağlı kağıt iyiliği ile ücretsizdir.

Haskell'den, her ikisi de daha yaygın olarak kullanılan F # veya OCaml gibi diğer ML varyantlarına kolayca geçiş yapabilirsiniz . Hava alma kenarı ATS için .

İsterseniz (ve Dynamic_Typing Parantezler):

Şema, Common Lisp'den daha küçük ve daha saf olan ancak endüstride daha az kullanılan iki ana Lisp lehçesinin daha işlevsel olarak yönlendirilmesidir. Kişisel olarak Bilgisayar Programlarının Yapısını ve Yorumunu seviyorum ama oldukça teorik bir kitap, yutmak biraz zor olsa da sizi daha iyi bir programcı yapacak.

Common Lisp'i ya Pratik Common Lisp'i ya da Lisp Land'i iyi yatırımlar gibi görüyorsanız , ilki çevrimiçi olarak ücretsiz, ikincisi ise oldukça ucuz ve daha önemlisi (bazıları için) oyun odaklı. Şema'dan daha az saf olsa da daha güçlü.

Bunlardan, isterseniz Clojure'a genişleyebilirsiniz . JVM için Lisp, konuşlandırılması daha kolay ve "akademik" olma suçlarına karşı daha iyi savunabiliyor Clojure .NET'e dağıtılabilir ve Javascript'e geçebilir. Yerel .NET için IronScheme'i deneyin .

Ayrıca Haskell'de 48 Saatte Kendinize bir Şema Yaz ile farkı bölebilir ve her ikisini birden öğrenebilirsiniz .


SICP ile giderseniz, kitapta çok fazla video dersi var, en ünlüleri: groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures Paul Graham iyi bir yazar ve hakkında ücretsiz bir kitabı var neden lisp arı'nın dizidir paulgraham.com/onlisptext.html
simoraman

1
Real World Haskell'in ücretsiz çevrimiçi sürümünü okuyorum ve metni okurken yorumları okuma yeteneği son derece yararlı. Dolayısıyla, basılı sürümü alsanız bile, çevrimiçi sürümü de okumak isteyebilirsiniz. Bazı bölümler yorumlarla daha az kafa karıştırıcıdır.
MatrixFrog

4

En sevdiğim kaynak Haskell'e Nazik Giriş . Size bir Haskell öğrenin ve O'Reilly Gerçek Dünya Haskell ve Simon Thompson'ın İşlevsel Programlama El Sanatları bölümünü okudum , ama dürüstçe nazik girişle daha iyi yapıyorum. Haskell'in K&R'sine benziyor: dilin yaratıcıları tarafından üretilen ince bir belge. İhtişamlı değil, patronluk yapmıyor, ama onların bilgisiyle sizi bunaltmaya çalışmıyorum.


1
Nazik Giriş kadar mide sağlam yumruk gibi çok doğrudan ve hiç akıllıca değildir. Ne kötüye gitmeye ne de hükmetmeye çalışarak kötülük yapmadan şiddet uyguladığı anlamında naziktir; daha ziyade, okuyucunun savaşmak için gerekli iç gücü keşfetmeye gelebileceğini umarak.
CA McCann

1
Hmm, sensei, bu görüntüleri kullanacağımdan emin değilim ama her neyse. Ne şiddetli ne de içsel güç bir mesele değil, ama geri kalanını kabul edeceğim. "Nazik" burada biraz esprili. "Mütevazı teklif" gibi.
JohnL4

1
Evet, orada ... küçük yaratıcı özgürlükler alıyordum. ;] Bu günlerde diğer tanıtım materyallerine kıyasla çok kör bir şeyden geçmek biraz zihinsel bir zorunluluk gerektirir (sadece Haskell için değil, herhangi bir dil için). Yine de K&R ile karşılaştırdığımda bu tarz bir tarzda olduğunuzu düşünüyorum. Genelde "nazik" ifadesinin Haskell Raporu'ndan ve bir dizi araştırma makalesinden öğrenmenin aksine olduğunu varsaydım.
CA McCann

1

http://hop.perl.plover.com/ ücretsiz indirebileceğiniz bir kitap içerir. Perl'de birçok işlevsel tekniğin nasıl kullanılacağını açıklar.

Söylediklerinin çoğu kolayca JavaScript, Ruby veya Python'a çevrilebilir.


1

Şu anda fonksiyonel programlamayı kendim öğreniyorum. Ancak Haskell kullanmayı öğreniyorum.

İşte birkaç çevrimiçi kitap (bunları ciltli iirc'de de satın alabilirsiniz)

Haskell esteroik değil ve daha yaygın hale geliyor (muhtemelen LISP veya Erlang kadar yaygın değil). Ancak bu tamamen işlevsel bir dildir ve sizi fonksiyonel programlama paradigmasını öğrenmeye zorlar. Tamamen işlevsel olmayan bir dil kullanacağınız yarı zorunlu yarı işlevsel yaklaşımın aksine.

İnsanlar WebServers, Bittorrent İstemcileri ve haskell kullanarak birkaç gerçek dünya uygulaması geliştirdi. Ancak ben şahsen kavramları öğrenmek ve daha sonra şimdiye kadar harika çalışıyor C # & F # için appling kullanıyorum.

Zevk almak.


1

"Bilgisayar Programlarının Yapısı ve Yorumlanması" ile ilgili pek çok şey duydum. Bu gerçek bir kitap, bu yüzden Paper'da da almak isteyebilirsiniz, bkz. Http://www.amazon.co.uk/Structure-Interpretation-Computer-Electrical-Engineering/dp/0262510871 .

Http://mitpress.mit.edu/sicp/ ( http://mitpress.mit.edu/sicp/full-text/book/book.html ) adresinden ücretsiz olarak erişilebilir ve derslerin videoları bile vardır ( http: //groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ )


SICP güzeldi, ama benim deneyim erişilebilir değil.
willem

1

Haskell'de Programlama

Satın almaya karar veremeyebilirsiniz, ancak kitabın ana sayfası (yukarıya bakın) Haskell programlama ile ilgili 13 kanal 9 videoya bağlantı veriyor.

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.