สมมติว่าฉันมีฟังก์ชั่นที่มีลักษณะดังต่อไปนี้ (ตามปกติเมื่อพิมพ์เอลลิสเอาท์พุท)
(defun my-example-function () (let ((a (do-something)) (b (do-something))) (setq someone me) (with-current-buffer b (do-that (or this (and that those))) (format "%s" a))))
ฉันต้องการคำสั่งที่สามารถเปลี่ยนสิ่งนั้นให้เป็นสิ่งที่มนุษย์จะเขียนเช่นดังต่อไปนี้
(defun my-example-function ()
(let ((a (do-something))
(b (do-something)))
(setq someone me)
(with-current-buffer b
(do-that (or this (and that those)))
(format "%s" a))))
ฉันเข้าใจว่ามีมากกว่าหนึ่งวิธีในการจัดรูปแบบโค้ด elispและมนุษย์ต่างคนทำสิ่งนั้นแตกต่างกัน นอกจากนี้ฉันเข้าใจว่ามันค่อนข้างเป็นอัตนัย แต่มันควรจะค่อนข้างง่ายที่จะเกิดขึ้นกับชุดของกฎที่ส่งผลให้รหัสที่อย่างน้อยดี
จริง ๆ แล้วฉันเคยคิดที่จะทำสิ่งนี้ด้วยตัวเองเมื่อไม่นานมานี้ แต่ฉันคิดว่ามันเป็นการดีกว่าที่จะถามก่อนที่ฉันจะประดิษฐ์ล้อ
หมายเหตุฉันรู้เกี่ยวกับฟังก์ชั่นppแต่ไม่ได้ไปที่นั่น:
(defun my-example-function nil
(let
((a
(do-something))
(b
(do-something)))
(setq someone me)
(with-current-buffer b
(do-that
(or this
(and that those)))
(format "%s" a))))
pp
ผมไม่แน่ใจว่าคุณสามารถทำอะไรได้ดีกว่ารุ่นที่ดีกว่าเล็กน้อย