LISP - มาโคร
มาโครช่วยให้คุณสามารถขยายไวยากรณ์ของ LISP มาตรฐานได้
ในทางเทคนิคแมโครเป็นฟังก์ชันที่ใช้ s-expression เป็นอาร์กิวเมนต์และส่งคืนรูปแบบ LISP ซึ่งจะถูกประเมิน
การกำหนดมาโคร
ใน LISP มาโครที่ตั้งชื่อถูกกำหนดโดยใช้แมโครอื่นที่ชื่อ defmacro. ไวยากรณ์สำหรับการกำหนดมาโครคือ -
(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form
นิยามแมโครประกอบด้วยชื่อของแมโครรายการพารามิเตอร์สตริงเอกสารทางเลือกและเนื้อหาของนิพจน์ Lisp ที่กำหนดงานที่จะดำเนินการโดยแมโคร
ตัวอย่าง
ให้เราเขียนมาโครง่ายๆชื่อ setTo10 ซึ่งจะใช้ตัวเลขและตั้งค่าเป็น 10
สร้างไฟล์ซอร์สโค้ดใหม่ชื่อ main.lisp และพิมพ์รหัสต่อไปนี้
(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)
เมื่อคุณคลิกปุ่ม Execute หรือพิมพ์ Ctrl + E LISP จะดำเนินการทันทีและผลลัพธ์ที่ได้กลับมาคือ -
25
10