ฉันเกลียดวิธีที่ elisp (ไม่แน่ใจว่า LISP โดยทั่วไป) จัดการเอกสารหลายบรรทัด
(defun foo ()
"This is
a multi
liner
docstring"
(do-stuff))
ฉันแน่ใจว่าหวังว่าฉันจะทำสิ่งที่ชอบ
(defun foo ()
(eval-when-compile
(concat
"This is\n"
"a multi\n"
"line\n"
"docstring"))
(do-stuff))
เพื่อให้การเยื้องสอดคล้องกัน
น่าเสียดายที่คอมไพล์ eval-when-compile ไม่สามารถทำงานได้
ไม่มีใครมีความคิดใด ๆ
eval-when-compile
อ้างถึงผลลัพธ์ (เพื่อเปลี่ยนจากค่าเป็นนิพจน์) หากมันฉลาดกว่านี้เล็กน้อยและอ้างถึงผลลัพธ์เมื่อไม่ได้พูดด้วยตนเองมันจะได้ผล
defun
มันควรจะค่อนข้างง่ายที่จะสร้างแมโครที่จะขยายไปที่ ข้อเสียเปรียบที่จะวิธีการที่ - และมันเป็นขนาดใหญ่ - มีการที่จะสร้างความสับสนให้ซอฟต์แวร์ใด ๆ (นอกเหนือจาก Elisp คอมไพเลอร์ / ล่าม) ที่มีการแยกรหัสของคุณมองหาdefun
s