เหตุผลหนึ่งที่ทำให้ภาษาที่ใช้อัลกอลสนับสนุนการจัดฟันด้วยตนเองนั้นก็คือการเพิ่มการเพิ่มจำนวนบรรทัดระหว่างการจัดฟันที่แยกจากกันโดยไม่ต้องย้ายเครื่องมือจัดฟัน นั่นคือถ้าเริ่มด้วย
if (pred)
{
printf("yes");
}
เป็นเรื่องง่ายที่จะเข้ามาและเพิ่มคำสั่งอื่นภายในวงเล็บปีกกา:
if (pred)
{
printf("yes");
++yes_votes;
}
มีรูปแบบเดิมแล้ว
if (pred)
{ printf("yes"); }
จากนั้นเราจะต้องมี "การย้าย" สองวงเล็บปีกกา แต่ตัวอย่างของฉันเกี่ยวข้องกับหลังมากขึ้น ที่นี่เครื่องมือจัดฟันกำลังแยกสิ่งที่ตั้งใจให้เป็นลำดับของข้อความซึ่งส่วนใหญ่จะเรียกใช้สำหรับผลข้างเคียง
ในทางกลับกันเสียงกระเพื่อมขาดงบ; ทุกรูปแบบคือการแสดงออกซึ่งให้คุณค่าบางอย่าง - แม้ว่าในบางกรณีที่หายาก (คิดว่า Common LISP) ค่านั้นจะถูกเลือกโดยเจตนาให้เป็น "ไม่มีค่า" ผ่านทาง(values)
รูปแบบที่ว่างเปล่า มันน้อยร่วมกันเพื่อหาลำดับของการแสดงออกเมื่อเทียบกับการแสดงออกที่ซ้อนกัน ความปรารถนาที่จะ "เปิดลำดับขั้นตอนจนกว่าตัวคั่นการปิด" จะไม่เกิดขึ้นบ่อยนักเนื่องจากเมื่อคำสั่งหายไปและค่าที่ส่งคืนจะกลายเป็นสกุลเงินที่ใช้กันทั่วไปมันหายากกว่าที่จะเพิกเฉยต่อค่าส่งคืนของนิพจน์ หายากเพื่อประเมินลำดับของนิพจน์สำหรับผลข้างเคียงเพียงอย่างเดียว
ใน Common Lisp progn
รูปแบบเป็นข้อยกเว้น (เช่นเดียวกับพี่น้อง):
(progn
(exp-ignored-return-1)
(exp-ignored-return-2)
(exp-taken-return))
ที่นี่progn
ประเมินนิพจน์ทั้งสามตามลำดับ แต่จะทิ้งค่าส่งคืนของสองนิพจน์แรก คุณสามารถจินตนาการว่าการเขียนวงเล็บปิดครั้งสุดท้ายในบรรทัดของมันเอง แต่โปรดสังเกตอีกครั้งว่าเนื่องจากรูปแบบสุดท้ายเป็นพิเศษที่นี่ (ไม่ใช่ใน Common Lisp สามัญสำนึกของการเป็นพิเศษ ) ด้วยการรักษาที่แตกต่างกันมีแนวโน้มว่าจะเพิ่มใหม่ นิพจน์ที่อยู่ตรงกลางของลำดับไม่ใช่เพียงแค่ "เพิ่มอีกอันลงไปยังจุดสิ้นสุด" ในขณะที่ผู้โทรจะได้รับผลกระทบไม่เพียงแค่ผลข้างเคียงใหม่ใด ๆ แต่เป็นการเปลี่ยนค่าตอบแทน
การทำให้เข้าใจง่ายขั้นต้นวงเล็บในส่วนต่างๆของโปรแกรม Lisp คือการกำหนดอาร์กิวเมนต์ที่ส่งผ่านไปยังฟังก์ชั่นเช่นเดียวกับในภาษา C-like และไม่คั่นบล็อกคำสั่ง ด้วยเหตุผลเดียวกันเรามักจะให้วงเล็บล้อมรอบการเรียกใช้ฟังก์ชันใน C ใกล้กับอาร์กิวเมนต์ดังนั้นเราก็ทำเช่นเดียวกันใน Lisp โดยมีแรงจูงใจน้อยกว่าที่จะเบี่ยงเบนจากการจัดกลุ่มใกล้เคียงนั้น
การปิดวงเล็บนั้นมีการนำเข้าน้อยกว่าการเยื้องของฟอร์มที่เปิด ในเวลาหนึ่งเรียนรู้ที่จะไม่สนใจวงเล็บและเขียนและอ่านตามรูปร่างเหมือนที่โปรแกรมเมอร์ Python ทำ อย่างไรก็ตามอย่าปล่อยให้การเปรียบเทียบนั้นนำคุณไปสู่การคิดว่าการลบวงเล็บทั้งหมดจะคุ้มค่า comp.lang.lisp
ไม่มีที่ถกเถียงกันดีที่สุดสำหรับการบันทึกไว้