วิธีที่ดีที่สุดในการเรียนรู้ LISP คืออะไร [ปิด]


167

ฉันได้เขียนโปรแกรมใน Python, PHP, Java และ C มาสองสามปีแล้วและฉันเพิ่งอ่านแฮกเกอร์และจิตรกรเสร็จดังนั้นฉันอยากลอง LISP!

ฉันเข้าใจว่ามันแตกต่างจากสิ่งที่ฉันรู้และมันจะไม่ง่ายเลย นอกจากนี้ฉันคิดว่า (โปรดแก้ไขให้ฉันถ้าฉันผิด) มีชุมชนน้อยลงและการพัฒนารอบ LISP ดังนั้นคำถามของฉันคืออะไรวิธีที่ดีที่สุดในการเรียนรู้ LISP คืออะไร

ฉันจะไม่สนใจซื้อหนังสือหรือลงทุนสักระยะ ฉันแค่ไม่อยากให้มันเสียเปล่า

แนวคิด "สุดท้าย" จะใช้ LISP สำหรับการพัฒนาเว็บและฉันรู้ว่ามันไม่ธรรมดาดังนั้น ... ฉันรู้ว่ามันเป็นเรื่องดีที่จะวางแผนการเรียนรู้ของฉันก่อนที่จะเลือกหนังสือเล่มแรกหรือบทช่วยสอนและใช้เวลากับบางสิ่งบางอย่างที่อาจไม่ เป็นวิธีที่ดีที่สุด!

ขอบคุณสำหรับคำตอบของคุณ!

แก้ไข:ฉันอ่าน Common LISP ที่ใช้งานได้จริงและ: ... นาน, ยาก, น่าสนใจและแน่นอนว่าฉันได้กลิ้งใน Lisp หลังจากนั้นฉันอ่าน schemer เล็กน้อยและมันสั้นสนุกและดีมากสำหรับการเขียนโปรแกรมโดยรวมของฉัน ดังนั้นคำแนะนำของฉันคือการอ่าน schemer ตัวน้อยก่อนจากนั้น (สองสามชั่วโมงและมันคุ้มค่า) ถ้าคุณตัดสินใจเสียงกระเพื่อม (หรือรูปแบบหรือภาษาใด ๆ ) ไม่ได้เป็นสิ่งที่คุณกำลังมองหาคุณจะยังคงสนุกมาก วิธีการคิดแบบใหม่เกี่ยวกับการเรียกซ้ำ!


Common เสียงกระเพื่อม: วิธีการโต้ตอบ หนังสือเก่า (1992) โดย Stuart Shapiro เคยเป็นต้นไม้ที่ตายแล้วเท่านั้น แต่ในปีที่ผ่านมาที่มีอยู่ในรูปแบบอิเล็กทรอนิกส์
Kaz

LISPCraft สามัญโดย Robert Wilensky เป็นหนังสือที่น่าสนใจถ้ามีอายุ ฉันมีฉบับหนักลงวันที่ 1986
Kaz

คำตอบ:


114

ลองอ่านLisp ของ Common Common Lispโดย Peter Seibel


2
ฉันคิดว่าฉันเห็นหนังสือเล่มนั้นที่วิทยาเขตของฉัน ... ดังนั้นอย่าไปหยิบมันตอนนี้!
DFectuoso

2
อย่าลืมเกี่ยวกับ REPL! ฉันไม่ได้ใช้สิ่งที่เรียนรู้เกี่ยวกับ LISP แต่มันทำให้ฉันเป็นโปรแกรมเมอร์ที่ดีขึ้นมากในทุกภาษา
Robert K

1
แนะนำเป็นอย่างยิ่งนี่เป็นหนังสือที่เราใช้สำหรับชั้น AI ของฉันเพื่อสอน LISP ให้กับโครงการของเรา
helloandre

6
DFectuoso - มันไม่ใช่แค่ลิงค์เกี่ยวกับหนังสือ แต่เป็นหนังสือ เริ่มอ่านหนังสือออนไลน์
Aaron

2
ใช่ฉันรู้ แต่ฉันไม่ชอบการอ่านในจอมอนิเตอร์ ... อย่างไรก็ตามฉันเลือกที่นี่เพื่อเป็นคำตอบเพราะฉันเริ่มอ่านหนังสือและมันก็เป็นสิ่งที่ดี (ฉันมากกว่าครึ่งหนึ่งของมันแล้วป่วยอ่าน schemer น้อยจะแก้ไขเมื่อ ฉันจบทั้งสอง = 0)
DFectuoso

76

ที่ชื่นชอบส่วนตัวของฉันคือ Abelson & Sussman โครงสร้างและการแปลความหมายของโปรแกรมคอมพิวเตอร์ มันใช้ Scheme ซึ่งเป็นภาษาที่ดีและสะอาดของ Lisp

ถ้าคุณชอบแนวทางที่เป็นประโยชน์มากกว่านี้คุณควรเลือก Lisp framework สำหรับการออกแบบเว็บ (ฉันไม่รู้ว่าสัตว์ร้ายนั้นมีอยู่จริง) แล้วกระโดดเข้ามา


1
Paul Graham มีเว็บเฟรมเสียงกระเพื่อมที่เรียกว่าส่วนโค้ง
graywh

15
ฉันเชื่อว่าอาร์คเป็นภาษาถิ่นของตัวเองไม่ใช่แค่กรอบ paulgraham.com/arc.html
michiakig

55

คุณอาจต้องการเริ่มต้นด้วย The Little Schemerเพื่อเป็นการวอร์มอัพ มันไม่ใช่หนังสือที่ใช้งานได้จริงเกี่ยวกับการเขียนโปรแกรม LISP ที่ผลิตได้ แต่เป็นหนังสือที่ยอดเยี่ยมสำหรับการเรียนรู้วิธีคิดใน Lisp


ดูเหมือนว่าจะเป็นการอ่านที่ดีและรวดเร็วในการเริ่มต้น! TY
DFectuoso

5
ฉันมักจะไม่เห็นด้วย ใช่การดำน้ำในนั้นอาจเป็นวิธีที่เร็วที่สุดในการเรียนรู้ Lisp แต่ก็มีแนวโน้มที่จะทำให้ผู้คนหันเหออกไป PCL มีข้อได้เปรียบที่โปรแกรมที่มีประสบการณ์สามารถเริ่มใช้ Lisp ตั้งแต่วันที่ 1 แทนที่จะเป็นโปรแกรมที่ชวนให้หลงใหล
Aaron

43

MIT จัดทำหลักสูตร LISP ทั้งหมดในรูปแบบ DIVX และ MPEG ฉันขอแนะนำอย่างยิ่ง

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


3
การบรรยายจะขึ้นอยู่กับตำราเรียนโครงสร้างและการตีความโปรแกรมคอมพิวเตอร์ของพวกเขา
graywh

7
ฉันพบว่าวิดีโอ DivX นั้นมีคุณภาพใกล้เคียงกับวิดีโอ MPEG แม้ว่าจะมีขนาดเล็กกว่ามาก ประหยัดแบนด์วิดท์และพื้นที่ดิสก์ด้วยตัวคุณเอง
Drew Noakes

2
เพื่อประหยัดพื้นที่ดิสก์ได้มากขึ้นไปที่ลิงค์และค้นหา "โครงสร้างและการตีความ" (ใช้เครื่องหมายคำพูด)
Bill Evans ที่ Mariposa

ฉันจะดูวิดีโอ SICP พวกเขาใช้ภาษาอะไร พวกเขาไม่ได้ทำให้การกล่าวถึงภาษาใด ๆ พวกเขาก็เรียกมันว่า 'เสียงกระเพื่อม ...
priestc

2
@priestc ฉันรู้ว่าคำถามนี้ถูกถามเมื่อ 4 ปีก่อน แต่เพื่อให้ชัดเจน พวกเขาใช้ "Scheme"
dptd

33

ขณะนี้มีหนังสือชื่อว่า'Land of LISP'ที่สอนการเขียนโปรแกรม LISP ผ่านการเขียนเกมตัวอักษรสไตล์ 80 ฉันอ่านมันตอนนี้และมันเขียนได้ดีมากและไม่ได้ใส่ใจตัวเองมากเกินไปซึ่งฉันชอบ


23

มีหลายตัวเลือกที่นี่ ก่อนอื่น Scheme และ Common LISP นั้นมีความแตกต่างกันค่อนข้างมาก (เช่นการกำหนดขอบเขต); คุณควรเลือกหนึ่งที่จะเริ่มต้นด้วยและติดกับมันในขณะที่ ฉันเป็นแฟนตัวยงทั่วไป แต่นั่นอาจเป็นหนึ่งในคำถามทางศาสนา vi-vs-EMACS

สำหรับ Scheme ไปที่ภาษาการเขียนโปรแกรม Schemeของ Kent Dybvig ตามด้วย SICP

สำหรับ Lisp สามัญรวมทั้ง Lisp สามัญฉันควรแนะนำ Lisp ของ David Lamkins ที่ประสบความสำเร็จ ที่ประสบความสำเร็จชัดคือยังมีออนไลน์ฟรี

หลังจากนั้นให้ดูLisp in Small Piecesโดย Queinnec และLispของ Norvig ในหนังสือ AIเสียงกระเพื่อมในหนังสือ

Marty Hall มีรายการที่ดีที่ Johns Hopkins

อัปเดต : ฉันไม่ได้ตั้งใจที่จะทำมันตลอดไปเพียงแค่ความพยายามที่จะเรียนรู้ทั้งสองอย่างในครั้งเดียวจะสร้างความสับสน



17

ฉันขอแนะนำProject Eulerเป็นแหล่งที่มาของปัญหาขนาดเล็กที่คุณสามารถใช้เพื่อสอนภาษาโปรแกรมใหม่ ๆ ให้ตัวเอง


1
ฉันพร้อมผู้เข้าร่วมที่ดีของ Project Euler แล้วใช่แล้วเวลาที่ฉันใช้จะมีการฝึก LISP (เมื่อฉันเรียนรู้วิธีการทำสองสามอย่าง)
DFectuoso

9

Ansi Common Lisp โดย Paul Graham เป็นหนังสือที่ดี

ฉันคิดว่ามันอาจจะไม่ได้รับการตีพิมพ์ดังนั้นทางออกที่ดีที่สุดของคุณในการรับมันผ่าน Amazon ฉันได้รับหนังสือสำหรับชั้นเรียน "การประมวลผลภาษาธรรมชาติ" ฉันเรียนปีสองในวิทยาลัย เราต้องเขียนโครงการการเขียนโปรแกรมใน LISP และดังนั้นฉันต้องเรียนรู้ Lisp อย่างรวดเร็ว

หนังสือช่วยฉันได้ไม่น้อย


8

เมื่อฉันมีปัญหา ฉันไม่รู้เสียงกระเพื่อม ดังนั้นฉันจึงตัดสินใจดาวน์โหลด LISP ในกล่อง

จากนั้นฉันก็พบว่าตัวเองติดตั้ง Emacs โดยไม่มีความช่วยเหลือหรือเอกสารใด ๆ

ฉันมีปัญหาสองข้อ


2
ปัญหาที่นี่คือมีคนไม่ได้บอกคุณเกี่ยวกับการสอน; กด Control-H ปล่อยพวกมันแล้วกด T ที่จะพาคุณไปที่บทช่วยสอนที่จะให้ทุกอย่างที่คุณต้องการในการเริ่มต้น ขอโทษที่ได้ยินเกี่ยวกับประสบการณ์ที่ไม่ดีของคุณ
JasonFruit

7
+1 สำหรับการอ้างอิงเรื่องตลก regex เก่า แต่ -1 สำหรับการไม่มีประโยชน์ด้านบนของมัน :-P
Michael H.

7

สำหรับผู้เรียนที่จริงจังฉันขอแนะนำPAIPจาก Norvig มันเป็นแหล่งเรียนรู้ที่ยอดเยี่ยมในการเรียนรู้ทั้ง Lisp และ AI


ฉันสองสิ่งนี้มันเป็นหนังสือที่ยอดเยี่ยมเป็นหนังสือที่เขียนได้ดีและ IMO ให้แรงบันดาลใจมากกว่า Practical Common Lisp
Johan Kotlinski

6

เบิร์กลีย์เสนอCS61aในรูปแบบพอดคาสต์ นี่คือบทนำของคลาส CS ที่อิงกับ SICP เป็นรุ่นที่ทันสมัยกว่าวิดีโอ 1982 ของ MIT ที่มีให้


6

ตอนนี้ฉันกำลังทำงานผ่าน Lisp และได้เจอ "หนังสือ" เพื่อเรียนรู้ Lisp มันถูกแนะนำโดยRainer Joswig

หนังสือเล่มนี้มีชื่อว่าCommon LISP: คำแนะนำแบบย่อเกี่ยวกับการคำนวณเชิงสัญลักษณ์และสามารถดาวน์โหลดเป็น PDF ได้ ผู้เขียนเริ่มต้นด้วย UML เช่นเดียวกับวิธี Lisp ในบทแรกและค่อยๆแนะนำไวยากรณ์ Lisp มากขึ้นเรื่อย ๆ

ฉันยังดูเสียงกระเพื่อมที่ใช้งานได้และฉันคิดว่าผู้เขียนคัดค้านข้อมูลที่จำเป็นมากมายแม้แต่สำหรับโปรแกรมเมอร์ที่มีประสบการณ์ ดูเหมือนหนังสือเล่มนี้จะไม่ทำแบบนั้น (ฉันยังไม่เสร็จสมบูรณ์ แต่พบว่ามีประโยชน์พอที่จะแนะนำ)

อีกอย่างคุณจะต้องมีสภาพแวดล้อมในการทำงานฉันพบLisp ในกล่องเพื่อทำงานได้ดี มันทำงานบน Windows และ Linux และใช้ eMacs


5

ฉันหลงเสน่ห์ LISP ด้วยภาษา JVM - Clojure Clojure นับเป็น LISP ที่ยอดเยี่ยมนับตั้งแต่

  • มันมี "ซินแท็กซ์แบบง่าย ๆ " ซึ่งเป็นสิ่งที่ต้องการ Parathensis น้อยกว่ามีชุดคอลเลกชันที่ออกแบบอย่างชาญฉลาด
  • มันขึ้นอยู่กับ JVM ดังนั้นจึงมีความเสถียรรันไทม์ของนักแสดงภายใต้นอกจากนี้ทั้งระบบนิเวศ Java (ไลบรารีเช่นไดรเวอร์ฐานข้อมูล, เครื่องมือสร้าง, IDEs) อยู่ในอุ้งมือของเรา
  • Noir เป็นเว็บเฟรมเวิร์กที่ดีสามารถใช้งานแอปบนเว็บ Java และเซิร์ฟเวอร์แอปพลิเคชัน

กล่าวอีกนัยหนึ่ง Clojure สามารถใช้ในการผลิตได้ที่นี่ตอนนี้

เมื่อพูดถึงทรัพยากรมีหนังสืออย่างน้อย 4 เล่มและแหล่งข้อมูลออนไลน์ที่กล้าหาญ:

  • หนังสือ: "ความสุขของ Clojure" - ลึกซึ้งมาก แต่อาจเป็นเรื่องยากดังนั้นจึงเป็นการอ่านที่ดีที่สุดพร้อมกับ "Programming Clojure"
  • บทเรียนออนไลน์: บทช่วยสอนของMark Volkmann นั้นยอดเยี่ยม
  • ดูเพิ่มเติมที่/programming/599519/which-tutorial-on-clojure-is-best
  • 4Clojureเว็บไซต์มีจำนวนงานเขียนโปรแกรมง่าย ๆ ดังนั้นหนึ่งสามารถเล่นกับ Clojure และดูโซลูชันของผู้อื่น

4

ผมมีความสุขกับการอ่านLISP ปฏิบัติทั่วไปและANSI LISP

บน LISPดูน่าสนใจ แต่ราคาอยู่ที่ $ 190 ดูเหมือนว่าจะแพงไปหน่อยสำหรับหนังสือเล่มหนึ่ง


4
"On Lisp" สามารถใช้ได้อย่างอิสระจากเว็บไซต์ของผู้เขียน
user49117

3
นี่คือลิงค์สำหรับดาวน์โหลด On Lisp ฟรี Link
Andrew-Dufresne

4

สำหรับการพัฒนาเว็บคุณอาจต้องการดูhunchentootเว็บเซิร์ฟเวอร์ที่เขียนด้วยเสียงกระเพื่อมทั่วไป


คุณรู้ไหมว่ามันเศร้ามากที่ได้เห็น webservers และ frameworks รอบ ๆ เสียงกระเพื่อมที่เน้นการใช้เว็บ ... มีการออกแบบเป็นศูนย์ (css หรือแม้กระทั่งสไตล์อินไลน์
DFectuoso

4

ฉันพบว่าการทำงานผ่านแบบฝึกหัดใน "The Little Schemer" นั้นช่วยให้ฉันคิดทบทวนและจับคู่รูปแบบที่ซ้ำซากและทำให้การทำงานใน XSLT ง่ายขึ้นมาก


2

ฉันขอแนะนำ Gentle Introduction to Symbolic Computing หรือ Common Lisp ที่ใช้งานได้ก่อนตามประสบการณ์การเขียนโปรแกรมของคุณ สำหรับการฝึกซ้อมฉันใช้ Allegro CL 8.2 Free Express Edition ใน Windows มันเปลี่ยนการฝึกฝนเป็นความสนุกมากมาย


1

คำถามที่ตอบยาก ... ฉันคิดว่าทุกอย่างขึ้นอยู่กับสไตล์การเรียนรู้ของคุณ

ฉันเรียน LISP ในชั้นเรียน AI และ Expert Systems ในวิทยาลัย แต่นั่นเป็นวิธีที่ฉันเรียนรู้ ... ฉันไม่ใช่ผู้เรียนหนังสือที่ยอดเยี่ยมฉันชอบที่จะมีคนอธิบายให้ฉันในชั้นเรียน

LISP เป็นภาษาที่ไม่เหมือนใครและต้องการความคิดใหม่ถ้าคุณคุ้นเคยกับการเขียนโปรแกรม C, Java, PHP

ขอให้คุณโชคดี!


1

ฉันพบว่าการอ่านหนังสือSICPช่วยให้ฉันเรียนรู้ได้อย่างแท้จริง ฉันใช้ Steel Lisp สามัญ (SBCL) และประสบความสำเร็จเป็นอย่างดี

โชคดี


ขอบคุณฉันจะเลือกหนังสือบางเล่มในวันนี้และเริ่มต้นวันพรุ่งนี้!
DFectuoso

โปรดทราบว่า SBCL นั้นมีไว้สำหรับ Common LISP และหนังสือเล่มนี้เกี่ยวกับ Scheme ฉันยังไม่ได้อ่านทั้งหมด แต่ฉันคิดว่ามันยังคงเป็นความช่วยเหลือที่ดีสำหรับการเรียนรู้ LISP ทั่วไป คุณเพียงแค่ต้องค้นหาสิ่งที่เทียบเท่าใน Common LISP
Zelphir Kaltstahl


0

ฉันไม่รู้ว่ามีอะไรพิเศษเกี่ยวกับเสียงกระเพื่อมที่ทำให้แตกต่างจากการเรียนรู้ภาษาอื่น คุณเพียงแค่ต้องเริ่มใช้และลองใช้คุณสมบัติต่างๆ

ทางเลือกหนึ่งอาจจะลองทำโครงการง่ายๆโครงการ

อีกทางเลือกหนึ่งที่เฉพาะเจาะจงสำหรับ Lisp คือการเขียนส่วนขยาย Emacs ที่ช่วยคุณในการทำงานปกติของคุณ


0

อ่านหนังสือเหล่านี้ตามลำดับ: Gentle Introduction to Symbolic Computed, ANSI Common Lisp โดย Paul Graham จากนั้นย้ายไปยัง Common Common Lisp หรือข้าม ACL และใช้เป็นข้อมูลอ้างอิงในขณะที่ทำงานผ่าน PCL

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.