สิ่งตีพิมพ์ในหัวข้อ 'lisp'


ทำความเข้าใจกับพลังของ LISP
Paul Graham อธิบายว่า LISP เป็นจุดบรรจบกันของภาษาการเขียนโปรแกรมทั้งหมด ข้อสังเกตของเขาคือเมื่อภาษาเติบโต ภาษาโดยเฉลี่ยยังคงเลื่อนไปทาง LISP ต่อไป ดังนั้นการทำความเข้าใจ LISP คือการเข้าใจโมเดลพื้นฐานของการเขียนโปรแกรมสมัยใหม่ คนอื่นๆ โน้มน้าว LISP ว่าจำเป็นต่อการเป็นโปรแกรมเมอร์ที่ดีขึ้น เอริค เรย์มอนด์กล่าวไปไกลถึงขนาดที่กล่าวว่าการเข้าใจ LISP นั้นเป็น “ประสบการณ์การรู้แจ้งอันลึกซึ้ง” เพื่อค้นหาความเข้าใจนี้ ฉันไปที่แหล่งที่มา บทความต้นฉบับของ John McCarthy เรื่อง..

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

วางแผนและตั้งค่า!
ฉันจะเปลี่ยนค่าของตัวแปรผ่านฟังก์ชันที่ใช้พารามิเตอร์ lambda ได้อย่างไร เช่น: ;;definitions (define test "fails") (define (experiment input) (set! input "works")) ;;interactions > test "fails" > (experiment test) > test "fails"...
1957 มุมมอง
schedule 13.01.2024

การเปิดองค์ประกอบจากรายการการเชื่อมโยงด้วยเสียงกระเพื่อม (elisp)
ฉันกำลังค้นหาวิธี "ป๊อป" องค์ประกอบจากรายการการเชื่อมโยง หรืออีกนัยหนึ่งคือ สมาคม "ทำลายล้าง": (setq alist '((a . 1) (b . 2)) (assoc-pop 'a alist) ;; -> (a . 1) ;; alist -> ((b . 2)) มีฟังก์ชั่นใดบ้างในชุดสายรัด elisp?...
534 มุมมอง
schedule 28.10.2023

ความแตกต่างระหว่าง (วนซ้ำสำหรับ) และ (วนซ้ำ: สำหรับ) ใน 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

รับการย้อนกลับของรายการภายในฟังก์ชันที่ส่งคืนรายการ [ซ้ำกัน]
ดังนั้นฉันจึงต้องได้รับองค์ประกอบภายใต้ดัชนีคี่ในทางกลับกัน ฉันได้เขียนฟังก์ชันเพื่อรับองค์ประกอบดัชนีแปลก ๆ ให้ฉัน แต่ฉันไม่แน่ใจว่าจะทำให้พวกมันกลับมาย้อนกลับได้อย่างไร ฉันต้องทำสิ่งนี้ในฟังก์ชันเดียวและต้องเป็นแบบเรียกซ้ำ
218 มุมมอง
schedule 28.12.2023

การเรียกซ้ำของ Clojure รวบรวมรายการ
((fn foo [x] (when (> x 0) (conj (foo (dec x)) x))) 5) สำหรับโค้ดนี้ ผลลัพธ์คือ [5 4 3 2 1] เหตุใดจึงไม่เป็น [1,2,3,4,5] ฉันเห็นว่าเรา conf จากผลลัพธ์ของการเรียก foo แบบเรียกซ้ำด้วยค่า เพราะผมคิดว่าควรจะเป็น 1 2 3 4 5?...
163 มุมมอง

Racket - กรองจำนวนเต็มคู่และจำนวนคี่ออกเป็นสองรายการแยกกัน
ฟังก์ชันควรรับรายการจำนวนเต็มและส่งคืนรายการที่มีรายการย่อยสองรายการ รายการแรกประกอบด้วยเลขคู่จากรายการเดิม รายการที่สองประกอบด้วยเลขคี่ รหัสของฉันทำงานได้สำเร็จ แต่ถ้าฉันทดสอบด้วยจำนวนเต็มลบ เช่น -5 ในการทดสอบครั้งที่สอง รหัสของฉันก็จะไม่สนใจมันเลย...
736 มุมมอง
schedule 06.11.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