LISP öğrenmenin en iyi yolu nedir? [kapalı]


167

Birkaç yıldır Python, PHP, Java ve C'de programlama yapıyorum ve Hacker'ları ve Ressamları okumayı bitirdim, bu yüzden LISP'yi denemek isterim!

Bildiğimden tamamen farklı olduğunu ve kolay olmayacağını anlıyorum. Ayrıca bence (yanlışsam beni düzelt) LISP çevresinde daha az topluluk ve gelişme var. Benim sorum şu: LISP öğrenmenin en iyi yolu nedir?

Kitap satın almayı veya biraz yatırım yapmayı düşünmezdim. Sadece boşa harcanmasını istemiyorum.

"Nihai" fikir, web geliştirme için LISP kullanmak olacaktır ve bunun çok yaygın olmadığını biliyorum ... İlk kitabı veya öğreticiyi seçmeden önce öğrenmemi planlamanın iyi bir şey olmadığını biliyorum. en iyi yol ol!

Cevaplarınız için hepinize teşekkürler!

edit: Pratik Ortak Lisp okumak ve oldu: ... uzun, zor, ilginç ve kesinlikle beni Lisp içinde haddeleme var, bundan sonra ben küçük schemer okumak ve kısa, eğlenceli ve benim genel programlama için çok çok iyi oldu. Bu yüzden benim tavsiyem önce küçük şemayı okumak olacaktır, o zaman (onun birkaç saat ve buna değer) eğer lisp (veya şema veya herhangi bir lehçe) aradığınız şey olmadığına karar verirseniz, hala çok eğleneceksiniz özyineleme hakkında yeni düşünme yolu!


Ortak Lisp: Etkileşimli Bir Yaklaşım . Stuart Shapiro'nun eski (1992) kitabı. Eskiden sadece ölü ağaçlardı, ancak son yıllarda elektronik formda mevcuttu .
Kaz

Robert Wilensky'nin ortak LISPCraft'ı , eğer eskiyse ilginç bir kitap. 1986 tarihli basılı bir kopyam var.
Kaz

Yanıtlar:


114

Peter Seibel'in Pratik Ortak Lisp'i okumayı deneyin .


2
Sanırım o kitabı kampüsümde gördüm ... öyleyse gidip şimdi alacağım!
DFectuoso

2
REPL'i unutmayın! LISP hakkında öğrendiklerimi kullanmadım, ama bu beni diğer dillerde çok daha iyi bir programcı yaptı.
Robert K

1
kesinlikle tavsiye ederim, bu bizim AI sınıfım için bize projelerimiz için LISP öğretmek için kullandığımız kitap oldu.
helloandre

6
DFectuoso - bu sadece bir bağlantı değil hakkında kitabında, bu ise kitap. Kitabı çevrimiçi okumaya başlayın
Aaron

2
Evet biliyorum ama monitörde okumaktan hoşlanmıyorum ... neyse ben bu kitabı okumaya başladı cevap coz olarak aldı ve iyi (bunun yarısından im ve sonra küçük şemayı okuyacak, bunu ne zaman düzenleyecek her ikisini de bitiririm = 0)
09:49

76

Benim kişisel favorim Abelson & Sussman Yapısı ve Bilgisayar Programlarının Yorumlanması . Lisp'in güzel ve temiz bir lehçesi olan Şema'yı kullanır.

Daha pratik bir yaklaşımdan hoşlanıyorsanız, belki web tasarımı için bazı Lisp çerçevesini seçmelisiniz (böyle bir canavar varsa hiçbir fikrim yok) ve hemen atlamalısınız.


1
Paul Graham'ın arc adlı bir lisp web çerçevesi var.
graywh

15
Arc'ın sadece bir çerçeve değil, Lisp'in kendi lehçesi olduğuna inanıyorum. paulgraham.com/arc.html
michiakig

55

Isınma olarak Küçük Schemer ile başlamak isteyebilirsiniz . Lisp programlarının prodüksiyonunu yazmakla ilgili pratik bir kitap değil, Lisp'te nasıl düşünüleceğini öğrenmek için harika bir kitap .


Bu başlamak için iyi ve hızlı bir okuma gibi görünüyor! TY
DFectuoso

5
Kabul etmeme eğilimindeyim. Evet, içine dalmak Lisp'i öğrenmenin en hızlı yolu olabilir, ama aynı zamanda insanları geri çevirme olasılığı da en yüksektir. PCL deneyimli programları başlatmak anlamına avantajı kullanarak sadece mesmorized olma yerine, günde 1 ila Lisp'i
Aaron

43

MIT, DIVX ve MPEG formatında bir LISP kursu sunmuştur. Şiddetle tavsiye ederim.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/


3
Dersler, ders kitaplarını, Bilgisayar Programlarının Yapısını ve Yorumunu temel almaktadır.
graywh

7
DivX videolarının çok daha küçük olmalarına rağmen MPEG videolarına benzer kalitede olduğunu gördüm. Kendinize bant genişliğinden ve disk alanından tasarruf edin.
Drew Noakes

2
Daha fazla disk alanı tasarrufu için bağlantıya gidin ve "yapı ve yorumlama" için arama yapın (tırnak işaretlerini kullanarak).
Bill Evans Mariposa'da

SICP videolarından geçiyorum. Hangi lehçeyi kullanıyorlar? Bir lehçeden bahsetmiyorlar, sadece 'LISP' diyorlar ...
priestc

2
@priestc Bu sorunun 4 yıl önce sorulduğunu biliyorum ama sadece açıklığa kavuşturmak için. "Şema" kullanıyorlar.
dptd

33

Şimdi 80'lerin tarzı metin oyunları yazarak LISP programlamasını öğreten 'LISP Land' adlı bir kitap var. Şimdi okuyorum ve çok iyi yazılmış ve çok ciddiye almıyorum, ki bunu seviyorum.


23

Burada birkaç seçenek var. Her şeyden önce, Şema ve Ortak Lisp oldukça derin şekillerde (kapsam belirleme gibi) oldukça farklıdır; Başlamak için bir tane seçmeli ve bir süre sadık kalmalısınız . Ben Common Lisp hayranıyım, ama bu vi-vs-EMACS dini sorularından biri olabilir.

Scheme için, Kent Dybvig'in Scheme Programlama Dili ve ardından SICP'yi tercih edin .

Common Lisp ve Pratik Common Lisp için David Lamkins'in Başarılı Lisp'ini tavsiye ederim . Başarılı Lisp çevrimiçi olarak da ücretsiz olarak kullanılabilir .

Bundan sonra Queinnec'in Küçük Parçalardaki Lisp ve AI kitabındaki Norvig'in Lisp'e bakın .

Marty Hall'un Johns Hopkins'te güzel bir listesi var .

Güncellenmiş : Ben sonsuza kadar sopa demek istemiyorum, sadece aynı anda hem öğrenmeye çalışmak kafa karıştırıcı olurdu.



17

Project Euler'e , kendinize yeni bir programlama dili öğretmek için kullanabileceğiniz küçük ısırık büyüklüğünde sorunların mükemmel bir kaynağı olarak tavsiye ederim .


1
Zaten Project Euler'in iyi bir katılımcısıyım, evet, orada harcadığım zaman LISP (bir kaç şey yapmayı öğrendiğimde)
uygulayacağım

9

Paul Graham'ın Ansi Common Lisp iyi bir kitap.

Sanırım baskısı bitmiş olabilir, bu yüzden Amazon üzerinden almak için en iyi bahis. Üniversitemizin ikinci yılını aldığım bir "Doğal Dil İşleme" dersi aldım. Programlama projelerini LISP'de yazmak zorunda kaldık, bu yüzden Lisp'i hızlı bir şekilde öğrenmem gerekiyordu.

Kitap bana biraz yardımcı oldu.


8

Bir zamanlar bir sorunum vardı. Lisp bilmiyordum. Bu yüzden bir kutuya LISP indirmeye karar verdim.

Sonra kendimi herhangi bir yardım veya belge olmadan bir Emacs yüklemesi ile buldum.

Sonra iki problemim vardı.


2
Buradaki sorun, birinin size öğretici hakkında bilgi vermediğidir; Control-H tuşlarına basın, bırakın ve T tuşuna basın. Bu, sizi başlamak için ihtiyacınız olan her şeyi verecek bir eğiticiye götürür. Kötü deneyiminizi duyduğuma üzüldüm.
JasonFruit

7
Eski regex şaka referansı için +1, ama üstüne yararlı olmadığı için -1. :-P
Michael H.

7

Ciddi öğrenenler için, Norvig'den PAIP'i öneriyorum . Lisp ve AI öğrenmek için mükemmel bir kaynaktır.


İkincisi, harika bir kitap, iyi yazılmış ve IMO, Pratik Common Lisp'den daha ilham verici.
Johan Kotlinski

6

Berkeley, podcast formatında CS61a sunar . Bu, SICP temelli CS sınıfına giriş niteliğindedir. MIT'in 1982 videosundan daha modern bir versiyonudur.


6

Lisp'te şu anda çalışıyorum ve Lisp'i öğrenmek için "kitap" a rastladım. Rainer Joswig tarafından önerildi

Kitabın adı Common Lisp: Sembolik Hesaplamaya Nazik Bir Giriş ve PDF olarak indirilebilir. Yazar ilk bölümde Lisp'e UML benzeri bir yaklaşımla başlar ve giderek daha fazla Lisp sözdizimi sunar.

Ayrıca pratik lisp'e de baktım ve yazarın deneyimli bir programcı için bile çok fazla gerekli bilgiyi gözden geçirdiğini düşünüyorum. Bu kitap bunu yapmıyor gibi görünüyor (tamamen bitirmedim, ama önermek için yeterince yararlı buldum).

bir şey daha, çalışmak için bir ortama ihtiyacınız olacak. Lisp'i bir kutuda iyi çalışması için buldum . Windows ve Linux üzerinde çalışır ve eMac'leri kullanır.


5

JVM lehçesi - Clojure tarafından LISP'ye ilgi duydum. Clojure harika bir LISP, çünkü

  • "basitleştirilmiş sözdizimi" vardır, yani daha az parathensis gereklidir, zekice tasarım koleksiyonları mevcut
  • JVM tabanlıdır, bu nedenle altında istikrarlı, performanslı çalışma zamanı vardır, ayrıca tüm Java ekosistemi (kütüphaneler, örneğin veritabanı sürücüleri, oluşturma araçları, IDE'ler) elimizde
  • Noir iyi bir web çerçevesi, uygulamalar Java web ve uygulama sunucularına dağıtılabilir

Başka bir deyişle, Clojure şu anda burada üretimde kullanılabilir.

Kaynaklar söz konusu olduğunda, en az 4 kitap ve planty çevrimiçi kaynaklar vardır:



4

Web geliştirme için ortak lisp ile yazılmış bir web sunucusu olan hunchentoot'a bakmak isteyebilirsiniz .


Biliyorsunuz, web odaklı olan lisp çevresindeki tüm web sunucularını ve çerçevelerini görmek çok üzücü ... ZERO tasarımına sahip (css veya hatta satır içi stil
DFectuoso

4

"The Little Schemer" daki alıştırmalarla çalışmayı, düşüncemin özyinelemeli, desen eşleştirme tarafının bilemesine gerçekten yardımcı oldum ve XSLT'de çalışmayı çok daha kolay hale getirdim.


2

Programlama deneyimlerinize dayanarak, öncelikle Sembolik Hesaplamaya veya Pratik Ortak Lisp'e Nazik Giriş öneriyorum. Pratik yapmak için Allegro CL 8.2 Free Express Edition'ı Windows'ta kullanıyorum. Pratik yapmak çok eğlenceye dönüşüyor.


1

Cevaplanması zor bir soru ... Sanırım her şey sizin öğrenme tarzınıza bağlı.

LISP'yi üniversitedeki AI ve Expert Systems derslerimde öğrendim, ancak bu şekilde öğreniyorum ... Harika bir kitap öğrenen değilim, birisinin bana bir sınıf ortamında açıklamasını tercih ederim.

LISP kesinlikle benzersiz bir dildir ve geleneksel C, Java, PHP programlarına alışkınsanız yeni bir düşünce dizisi gerektirir.

Size iyi şanslar!


1

SICP kitabını okurken öğrenmeme gerçekten yardımcı oldu. Steel Bank Common Lisp'i (SBCL) kullandım ve bu konuda başarılı oldum.

İyi şanslar


Teşekkürler Bugün bazı kitaplar seçeceğim ve yarın çok erken başlayacağım!
DFectuoso

Bununla birlikte, SBCL'nin Ortak LISP için olduğunu ve kitabın Şema hakkında olduğunu unutmayın. Henüz tam olarak okumadım, ama bence Ortak LISP'yi öğrenmek için hala çok yardımcı olabilir. Ortak LISP'de eşdeğerleri bulmanız yeterlidir.
Zelphir Kaltstahl


0

Lisp hakkında başka bir dil öğrenmekten farklı kılan özel bir şey olduğunu bilmiyorum. Sadece kullanmaya ve özelliklerini denemeye başlamanız gerekir.

Bir seçenek basit bir projeyi denemek olabilir .

Lisp'e özgü başka bir seçenek de, normal işinizde size yardımcı olan bir Emacs uzantısı yazmak olacaktır.


0

Bu kitapları sırasıyla okuyun: Sembolik Hesaplamaya Nazik Giriş, Paul Graham'ın ANSI Ortak Lisp'i ve ardından Pratik Ortak Lisp'e geçin. Veya ACL'yi atlayın ve PCL'de çalışırken referans olarak kullanın.

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.