คำถามในหัวข้อ 'common-lisp'

ความแตกต่างระหว่าง (วนซ้ำสำหรับ) และ (วนซ้ำ: สำหรับ) ใน Common Lisp [ซ้ำกัน]
ฉันเพิ่งเห็นคำตอบของ Sylwester สำหรับ คำถามนี้ และฉันคิดว่าแปลกที่ ลูปมีโคลอนอยู่ทุกหนทุกแห่ง ปกติผมจะเขียน (loop for n below 10 do (princ n) (terpri)) แทน (loop :for n :below 10 :do (princ n) (terpri)) หลังจากการทดสอบบางอย่าง...
152 มุมมอง
schedule 21.12.2023

เหตุใดแมโครที่ใช้การอนุญาตจึงแตกต่างจากที่ไม่ได้ใช้
ฉันยังใหม่กับ Lisp และฉันกำลังอ่าน Let Over Lambda ของ Doug Hoyte และเขานำเสนอแมโคร nif ของ Paul Graham ในบทที่ 3 ฉันกำลังเล่นกับเรื่องนั้นและสร้างมาโครสองตัวนี้: (defmacro niffy (expr pos zero neg) `(cond ((plusp ,expr) ,pos) ((zerop...
108 มุมมอง
schedule 10.01.2024

กำลังโหลดแพ็คเกจ Quicklisp เพื่อใช้ในไฟล์เสียงกระเพื่อมอื่น
ฉันได้ดาวน์โหลดโครงการซอฟต์แวร์ขนาดใหญ่ FriCAS ซึ่งฉันได้รวบรวมจากแหล่งที่มาและใช้ SBCL นี่เป็นเพียงเรื่องของการใช้ GNU .configure - ฉันเป็นมือใหม่ Lisp ที่สมบูรณ์ อย่างไรก็ตาม เพื่อที่จะเพิ่มฟังก์ชันการทำงานเพิ่มเติม ฉันจึงได้ติดตั้ง Quicklisp...
639 มุมมอง

Lisp สามารถใช้ได้อย่างง่ายดายในลักษณะที่ไม่เปลี่ยนรูปและใช้งานได้จริงหรือไม่?
ฉันมาจากพื้นหลังใน Haskell และฉันต้องการเรียน Common Lisp มีการพูดคุยกันเป็นอย่างดีว่า CL นั้น "ไม่ใช่ภาษาที่ใช้งานได้" แต่ฉันต้องการทราบว่าสามารถใช้เป็นภาษาที่ใช้งานได้หรือไม่ ตัวอย่างเช่น...
643 มุมมอง
schedule 30.12.2023

LISP เขียนฟังก์ชันที่เรียกว่า cut-in-half ซึ่งรับรายการและสร้างรายการใหม่ที่มีองค์ประกอบเป็นครึ่งแรกและครึ่งหลัง
ฉันมีปัญหากับฟังก์ชันนี้ ในตอนแรกเราถูกถามว่า "เขียนฟังก์ชันเสียงกระเพื่อมที่รับรายการและจำนวนเต็ม n แล้วส่งกลับองค์ประกอบ n แรกของรายการเป็นรายการใหม่ ในกรณีที่ n น้อยกว่า 1 ก็จะส่งกลับ NIL ในกรณีที่ n คือ เกินความยาวแล้ว...
838 มุมมอง
schedule 13.11.2023

เอาชนะโอเปอเรเตอร์พิเศษโดยใช้ MACROLET หรือไม่
ฉันกำลังพยายามแทนที่ IF ในเครื่อง (จุดประสงค์คือการฝัง DSL) พฤติกรรมทำให้ฉันสับสนจริงๆ ใน SBCL: (macrolet ((if (x) x)) (if 'x)) ; => X (macrolet ((if (x) x)) (let ((x 2)) (if 'x))) ; => Execution of a form compiled with...
59 มุมมอง
schedule 20.12.2023