คำถามติดแท็ก scheme

Scheme เป็นภาษาโปรแกรมที่ใช้งานได้ซึ่งเป็นภาษาถิ่นของ Lisp มีการออกแบบที่เรียบง่ายพร้อมข้อกำหนดมาตรฐานและการใช้งานมากมาย

5
Scheme vs Common Lisp: คุณลักษณะใดที่ทำให้โครงการของคุณแตกต่าง? [ปิด]
ไม่มีปัญหาการขาดแคลนคำถาม "Scheme vs Common Lisp" ที่คลุมเครือทั้งใน StackOverflow และบนเว็บไซต์นี้ดังนั้นฉันต้องการทำให้สิ่งนี้มีความสำคัญยิ่งขึ้น คำถามสำหรับคนที่มีรหัสในทั้งสองภาษา: ในขณะที่การเขียนโค้ดใน Scheme องค์ประกอบเฉพาะของประสบการณ์การเขียนโปรแกรม Lisp แบบใดที่คุณพลาดมากที่สุด หรือในทางกลับกันในขณะที่เข้ารหัสใน Common LISP คุณพลาดอะไรไปจากการเข้ารหัสใน Scheme ฉันไม่ได้หมายถึงคุณสมบัติทางภาษา ต่อไปนี้เป็นสิ่งที่ถูกต้องทั้งหมดที่ควรพลาดรวมถึงคำถามที่เกี่ยวข้อง: ห้องสมุดเฉพาะ คุณสมบัติเฉพาะของสภาพแวดล้อมการพัฒนาเช่น SLIME, DrRacket เป็นต้น คุณสมบัติของการใช้งานเฉพาะเช่นความสามารถของ Gambit ในการเขียนบล็อกของรหัส C ลงในที่มาของโครงการของคุณโดยตรง และแน่นอนคุณสมบัติด้านภาษา ตัวอย่างของคำตอบที่ฉันหวังไว้: "ฉันพยายามที่จะใช้ X ใน Common LISP และถ้าฉันมีความต่อเนื่องระดับเฟิร์สคลาสของ Scheme ฉันจะทำแค่ Y ทั้งหมด แต่แทนที่จะทำ Z ซึ่งมันเจ็บปวดมากกว่า" "การเขียนสคริปต์กระบวนการสร้างในโครงการ Scheme ของฉันเจ็บปวดขึ้นเรื่อย ๆ …
155 lisp  scheme 

15
LISP ยังมีประโยชน์ในโลกปัจจุบันหรือไม่? เวอร์ชันใดที่ใช้มากที่สุด
ฉันพยายามสอนภาษาโปรแกรมใหม่ในช่วงเวลาปกติ เมื่อเร็ว ๆ นี้ฉันได้อ่าน Lisp และภาษาถิ่นของมันอยู่ตรงข้ามกับสเปกตรัมจากภาษาอย่าง C / C ++ ซึ่งทำให้ฉันอยากรู้มากขึ้นเกี่ยวกับเรื่องนี้ อย่างไรก็ตามมีสองสิ่งที่ไม่ชัดเจนสำหรับฉันและฉันกำลังมองหาแนวทางสำหรับพวกเขา: LISP ยังคงฝึกฝน / ใช้ในโลกปัจจุบันหรือว่าเป็นภาษาดั้งเดิมเช่น FORTRAN / COBOL ฉันหมายถึงนอกเหนือจากการบำรุงรักษาโค้ดที่มีอยู่แล้วมันใช้กับโครงการใหม่หรือไม่? ภาษาที่ใช้กันมากที่สุดคืออะไร? ฉันได้พบกับ Scheme และ Common LISP ในฐานะภาษากลางที่แพร่หลายมากที่สุดสองภาษาและต้องการความคิดเห็นของคุณว่าสิ่งใดเป็นสิ่งที่เป็นที่นิยม / มีประโยชน์มากที่สุดในการเรียนรู้และจะทำให้คุณพอใจมากหากคุณสามารถแนะนำทรัพยากร ในขณะที่กระตือรือร้นที่จะเรียนรู้ภาษาที่แตกต่างจากภาษาขั้นตอนที่ฉันคุ้นเคย แต่ฉันไม่ต้องการที่จะลงทุนในความพยายามที่ไม่เหมาะสมในบางสิ่งถ้ามันล้าสมัยไปหมด - ฉันยังคงเรียนรู้ว่ามันเป็น "มืออาชีพ" แต่มีมุมมองทางวิชาการเท่านั้น

11
ทำไม Scheme เป็นภาษาแรกของฉันในมหาวิทยาลัย
ฉันได้ยินเกี่ยวกับ C, C ++, Java ทุกวันเมื่อใดก็ตามที่ผู้คนเริ่มพูดถึงวิทยาศาสตร์คอมพิวเตอร์ แต่ในวิชาวิทยาศาสตร์คอมพิวเตอร์ครั้งแรกของฉันเราถูกขอให้เขียนใน Scheme (DrRacket) ทำไมถึงเป็นอย่างนั้น? สิ่งนี้จะทำให้ความเข้าใจในการเขียนโปรแกรมในอนาคตของฉันแตกต่างกันอย่างไร UPDATE: ฉันเรียนจบภาคแรกแล้ว แต่ยังไม่เสร็จสมบูรณ์ด้วย Scheme ในระยะที่สองของฉัน (ซึ่งตอนนี้) เราได้เข้าร่วมในการเขียนโปรแกรม C ในตอนแรกฉันรู้สึกผิดหวังที่ได้เรียนพอยน์เตอร์ แต่ตอนนี้ฉันรู้สึกดีขึ้นมาก ไม่มีอะไรจะพูดมากกว่านี้อีกแล้ว ฉันพยายามสอนตัวเอง Java (หรือ C ++?) สำหรับส่วน OOP ที่ฉันขาดหายไป จนถึงตอนนี้ฉันยังชอบโปรแกรมที่ใช้งานได้ดีที่สุด แลมบ์ดานั้นน่าหลงใหล :)
80 scheme 

2
ทำไมบางภาษาปัดเศษเป็นจำนวนเต็ม EVEN ที่ใกล้ที่สุด
ภาษาโปรแกรมเช่น Scheme (R5RS) และ Python ( ดูคำถามนี้ ) ไปทางเลขจำนวนเต็มคู่ที่ใกล้ที่สุดเมื่อค่าอยู่ระหว่างจำนวนเต็มโดยรอบ อะไรคือเหตุผลเบื้องหลังสิ่งนี้ มีแนวคิดทางคณิตศาสตร์ที่ทำให้การคำนวณต่อไปนี้ง่ายขึ้นด้วยเหตุผลหรือไม่ (R5RS อ้างอิงมาตรฐานจุดลอยตัว IEEE เป็นแหล่งที่มาของพฤติกรรมนี้)

12
Scheme vs Haskell สำหรับการแนะนำการเขียนโปรแกรมเชิงฟังก์ชั่น?
ฉันพอใจกับการเขียนโปรแกรมใน C และ C # และจะสำรวจ C ++ ในอนาคต ฉันอาจมีความสนใจในการสำรวจการเขียนโปรแกรมการทำงานเป็นกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกัน ฉันกำลังทำสิ่งนี้เพื่อความสนุกงานของฉันไม่ได้เกี่ยวข้องกับการเขียนโปรแกรมคอมพิวเตอร์และฉันได้รับแรงบันดาลใจจากการใช้งานการเขียนโปรแกรมการสอนค่อนข้างเร็วในหลักสูตรวิทยาศาสตร์คอมพิวเตอร์ในวิทยาลัย แคลคูลัสแลมบ์ดานั้นเกินความสามารถทางคณิตศาสตร์ของฉันอย่างแน่นอน Haskell หรือ Scheme ใดที่จะทำหน้าที่เป็นบทนำที่ดีในการเขียนโปรแกรมการทำงาน ฉันใช้ emacs เป็นเครื่องมือแก้ไขข้อความและต้องการให้สามารถกำหนดค่าได้ง่ายขึ้นในอนาคตซึ่งจะทำให้เกิดการเรียนรู้ Emacs Lisp อย่างไรก็ตามความเข้าใจของฉันคือ Emacs Lisp นั้นค่อนข้างแตกต่างจาก Scheme และยังเป็นขั้นตอนที่มากกว่าการทำงาน ฉันน่าจะใช้หนังสือ "The Little Schemer" ซึ่งฉันได้ซื้อไปแล้วถ้าฉันติดตาม Scheme (ดูเหมือนว่าฉันจะแปลกเล็กน้อยจากการ จำกัด การอ่านผ่าน) หรือจะใช้ "Learn You a Haskell เพื่อสิ่งดีๆ" ถ้าฉันติดตาม Haskell ฉันจะดูวิดีโอแนะนำ Intro ถึง Haskell โดย Dr …

2
การประยุกต์ใช้ความหมายเชิง Denotational กับการออกแบบโปรแกรม
ฉันได้อ่านนิดหน่อยเกี่ยวกับdenotational semantics (DS) และฉันก็รู้สึกทึ่งมากเกี่ยวกับกระบวนการออกแบบโปรแกรมคอมพิวเตอร์ที่ประเภทและฟังก์ชั่นมีการแมปที่แข็งแกร่งและชัดเจนกับคณิตศาสตร์ มีทรัพยากรใดบ้างที่พูดถึงการออกแบบโปรแกรมโดยยึด DS เป็นรายละเอียดหรือไม่? ฉันเคยเห็นการรักษาผิวเผินบางอย่างของเรื่อง ฉันคุ้นเคยกับ Haskell, Scala, Common LISP และ Scheme เล็กน้อยดังนั้นทรัพยากรใด ๆ ที่ใช้ภาษาเหล่านั้นจะได้รับการชื่นชมอย่างมาก
30 scala  haskell  scheme 

6
ภาษาโปรแกรมสำหรับการใช้งานฟังก์ชั่นล้วนจัดการโดยไม่มีคำสั่งมอบหมายได้อย่างไร
เมื่ออ่าน SICP ที่มีชื่อเสียงฉันพบว่าผู้เขียนค่อนข้างลังเลที่จะแนะนำคำสั่งมอบหมายให้ Scheme ในบทที่ 3 ฉันอ่านข้อความและเข้าใจว่าทำไมพวกเขาถึงรู้สึกเช่นนั้น เนื่องจาก Scheme เป็นภาษาโปรแกรมภาษาแรกที่ใช้งานได้ฉันรู้อะไรบางอย่างฉันรู้สึกประหลาดใจที่มีภาษาโปรแกรมบางฟังก์ชั่น (ไม่ใช่แบบแผนของหลักสูตร) ​​สามารถทำได้โดยไม่ได้รับมอบหมาย ขอใช้ตัวอย่างข้อเสนอจากหนังสือbank accountตัวอย่าง หากไม่มีคำแถลงการมอบหมายสิ่งนี้สามารถทำได้อย่างไรจะเปลี่ยนแปลงbalanceตัวแปรได้อย่างไร? ฉันถามเพราะฉันรู้ว่ามีบางภาษาที่เรียกว่าบริสุทธิ์ฟังก์ชั่นออกมีและตามทฤษฎีทัวริงที่สมบูรณ์ก็ต้องทำเช่นนี้ ฉันเรียนรู้ C, Java, Python และใช้การมอบหมายอย่างมากในทุกโปรแกรมที่ฉันเขียน ดังนั้นมันจึงเป็นประสบการณ์ที่เปิดหูเปิดตา ฉันหวังว่าบางคนสามารถอธิบายสั้น ๆ ได้ว่าการหลีกเลี่ยงการมอบหมายในภาษาโปรแกรมการทำงานเหล่านั้นและสิ่งที่มีผลกระทบอย่างลึกซึ้ง (ถ้ามี) ในภาษาเหล่านี้ ตัวอย่างดังกล่าวข้างต้นอยู่ที่นี่: (define (make-withdraw balance) (lambda (amount) (if (>= balance amount) (begin (set! balance (- balance amount)) balance) "Insufficient funds"))) นี้มีการเปลี่ยนแปลงโดยbalance สำหรับผมแล้วมันดูมากเช่นวิธีการเรียนการเปลี่ยนแปลงสมาชิกในชั้นเรียนset!balance ดังที่ฉันพูดฉันไม่คุ้นเคยกับภาษาโปรแกรมที่ใช้งานได้ดังนั้นหากฉันพูดอะไรผิดเกี่ยวกับพวกเขารู้สึกอิสระที่จะชี้ให้เห็น

3
บนเส้นทางสู่การตรัสรู้: Scheme, Common Lisp, Clojure? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา ผู้คนจำนวนมากฉลาดกว่าที่ฉันเขียนไว้เสมอเมื่อคุณเรียนรู้ Lisp มันทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นเพราะคุณ "เข้าใจ" บางทีทั้งหมดที่ฉันได้ยินเกี่ยวกับเสียงกระเพื่อมเปลี่ยนชีวิตของคุณเป็นเพียงเรื่องตลกขนาดใหญ่ในมือใหม่ แต่ฉันคิดว่าไม่มีอันตรายใด ๆ ในการรู้มากขึ้นเกี่ยวกับโลกแม้ว่าฉันจะพบว่าฉันถูกส่งไปหลังจากนกปากซ่อมหรืออะไรบางอย่าง . ฉันต้องการติดตามหนังสือ SICP และหรือ ANSI Common LISP แต่ในเวลาเดียวกันฉันกำลังศึกษาภาษาถิ่นและการใช้งานที่ฉันสามารถใช้ในโครงการส่วนบุคคลได้ SICP มุ่งเน้นไปที่ Scheme ดังนั้นจึงเป็นการลงคะแนนเสียงครั้งใหญ่ พอลเกรแฮมกล่าวว่าหากเขาจะสอนมือใหม่เขาจะทำใน Scheme แต่ฟังดูเหมือน Scheme ยังด้อยกว่า Common LISP แต่แล้วก็มี Clojure - ซึ่งฉันบอกว่าถูก จำกัด ด้วยวิธีการ แต่มีประโยชน์มากกว่าสำหรับคนอื่น ๆ (ห้องสมุด JVM) ดูเหมือนว่าฉันจะสามารถเข้าถึงวัสดุ Scheme …

6
แมโคร Lisp มีประโยชน์อย่างไร
Common Lisp ช่วยให้คุณสามารถเขียนมาโครที่ทำสิ่งแปลงแหล่งที่คุณต้องการ Scheme ช่วยให้คุณมีระบบจับคู่รูปแบบที่ถูกสุขลักษณะที่ให้คุณทำการแปลงได้เช่นกัน มาโครมีประโยชน์อย่างไรในทางปฏิบัติ Paul Graham กล่าวในการเอาชนะค่าเฉลี่ยที่: ซอร์สโค้ดของเครื่องมือแก้ไข Viaweb น่าจะเป็นมาโครประมาณ 20-25% สิ่งที่ผู้คนทำลงเอยด้วยมาโครจริง ๆ แล้วมีอะไรบ้าง?
22 lisp  scheme  macros 

3
มีแบบฝึกหัดมาตรฐานหรือหนังสือเกี่ยวกับแนวคิดการเขียนโปรแกรมใช้งานได้หรือไม่? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา มาจากพื้นหลังการเขียนโปรแกรมตามขั้นตอน / OO ฉันมักจะเขียนโปรแกรม Scheme ตามขั้นตอน ฉันจะถูกขัดจังหวะในการเรียนรู้โครงการหรือเสียงกระเพื่อมในการทำงานจากพื้นดินขึ้นมาเพื่อรีเซ็ตความคิดของโปรแกรมเมอร์ของฉัน มีแบบฝึกหัดหรือหนังสือที่มีมาตรฐาน de-facto สำหรับการอธิบายวิธีปฏิบัติที่ดีที่สุดวิธีการออกแบบและข้อมูลที่เป็นประโยชน์อื่น ๆ เกี่ยวกับแนวคิดการเขียนโปรแกรมการทำงาน? หนังสือเล่มไหนที่ทำให้มันพิเศษ?

4
ถ้ามี LISP จะทำให้การใช้ระบบมาโครง่ายขึ้นได้อย่างไร
ฉันเรียนรู้ Scheme จากSICPและฉันได้รับความประทับใจว่าส่วนใหญ่ของสิ่งที่ทำให้ Scheme และยิ่งกว่านั้น LISP พิเศษคือระบบมาโคร แต่เนื่องจากมาโครถูกขยายในเวลาคอมไพล์ทำไมคนไม่สร้างระบบมาโครที่เทียบเท่าสำหรับ C / Python / Java / อะไร ตัวอย่างเช่นเราสามารถผูกpythonคำสั่งexpand-macros | pythonหรืออะไรก็ได้ รหัสจะยังสามารถพกพาได้สำหรับผู้ที่ไม่ได้ใช้ระบบมาโครใครจะขยายมาโครก่อนที่จะเผยแพร่รหัส แต่ฉันไม่รู้อะไรเลยนอกจากเทมเพลตใน C ++ / Haskell ซึ่งฉันรวบรวมไม่เหมือนกันจริงๆ ถ้ามี LISP จะทำให้การใช้ระบบมาโครง่ายขึ้นได้อย่างไร

2
IronScheme สมบูรณ์เพียงพอหรือมั่นคงเพียงพอที่จะเรียนรู้ที่คุ้มค่าหรือไม่
IronSchemeถูกกล่าวถึงในWikipediaว่าเป็นตัวตายตัวแทนต่อโครงการที่ล้มเหลวที่เรียกว่า IronLisp นำ Lisp ไปยัง CLR และ. NET วิธีที่ Clojure ทำเพื่อ JVM ใครบ้างมีประสบการณ์กับภาษานี้หรือไม่? มันดูค่อนข้างสมบูรณ์ (99%) แต่ฉันไม่แน่ใจว่าจะตัดสินได้อย่างไรว่ามันคุ้มค่ากับเวลาของฉันที่จะทำตามวิธีการตั้งค่าหรือไม่ ด้วยความเสถียรหรือสมบูรณ์ฉันหมายถึงการใช้มันสำหรับโครงการจริงมากกว่าแค่เล่นซอกับเครื่องมือและปัญหาสไตล์ของ Project Euler
17 .net  lisp  scheme  clr 

2
เข้าใกล้ SICP ใน Clojure แทน Scheme
ฉันเป็นนักศึกษาปริญญาตรีปีที่สามในโปรแกรมวิศวกรรมซอฟต์แวร์และฉันได้นำความคิดในการอ่าน SICP ไปยังที่ปรึกษาเพื่อให้ได้ความเข้าใจที่ลึกซึ้งและลึกซึ้งยิ่งขึ้นเกี่ยวกับหลักการที่อยู่เบื้องหลังซอฟต์แวร์ทั้งหมดที่เราออกแบบ เขาแนะนำว่าอย่าเรียนรู้ Scheme เพื่อทำให้หนังสือเล่มนี้สมบูรณ์ (เพราะมันไม่ใช่เรื่องธรรมดาเหมือนภาษาถิ่น Lisp) แต่ให้ทำแบบฝึกหัดใน Clojure แทน มันเป็นหนังสือที่ยากอยู่แล้วถ้าฉันลองทำแบบฝึกหัดของหนังสือเล่มนี้ใน Clojure ที่ทันสมัยกว่านี้มันจะได้ผลอย่างไร ตัวอย่างเช่นฉันไม่สามารถหาคำตอบที่แท้จริงได้ไวยากรณ์ที่พวกเขาสอนสำหรับ Scheme นั้นแตกต่างกัน ฯลฯ
11 clojure  scheme  sicp 

2
ประเภทใน Lisp และ Scheme
ฉันเห็นแล้วว่าแร็กเก็ตมีประเภท เมื่อดูอย่างรวดเร็วครั้งแรกดูเหมือนว่าเกือบจะเหมือนกับการพิมพ์ Haskell แต่ CLOS ของ Lisp ครอบคลุมพื้นที่ Haskell บางประเภทหรือไม่ การสร้างประเภท Haskell ที่เข้มงวดมากและวัตถุในภาษา OO ใด ๆ ดูเหมือนจะคลุมเครือ เป็นเพียงว่าฉันดื่ม Hool-kool-aid บางอย่างและฉันหวาดระแวงโดยสิ้นเชิงว่าถ้าฉันไปตามถนน Lisp ฉันจะเมาเพราะการพิมพ์แบบไดนามิก


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