Algol tabanlı dillerin, destekleri kendi çizgileri üzerinde teşvik etmelerinin bir nedeni, destekleri hareket ettirmek zorunda kalmadan tutucu desteklerin arasına daha fazla çizgi eklemeyi teşvik etmektir. Yani, biriyle başlarsa
if (pred)
{
printf("yes");
}
gelip kaşlı ayraç içine başka bir deyim eklemek kolaydır :
if (pred)
{
printf("yes");
++yes_votes;
}
Orijinal form olsaydı
if (pred)
{ printf("yes"); }
o zaman iki parantezi "hareket ettirmek " zorunda kalırdık, ancak örneğim ikincisiyle daha fazla ilgileniyor. Burada, parantezler , çoğunlukla yan etki için çağrılan bir dizi ifade olarak tasarlananı sınırlandırmaktadır .
Tersine, Lisp ifadelerinden yoksundur; her form ifadedir , bir miktar değer verir - bazı nadir durumlarda (Common Lisp düşünürken) bile, bu değer kasıtlı olarak boş bir (values)
form aracılığıyla "değer yok" olarak seçilir . İç içe ifadelerin aksine , ifade dizilerini bulmak daha az yaygındır . "Kapanış sınırlayıcısına kadar bir adım dizisi açma" arzusu sık sık ortaya çıkmaz, çünkü ifadeler uzadıkça ve geri dönüş değerleri daha yaygın bir para birimi olduğunda, ifadenin geri dönüş değerini yok saymak daha nadirdir ve Sadece yan etki için bir ifade dizisini değerlendirmek için nadirdir.
Common Lisp'te progn
form bir istisnadır (kardeşleri gibi):
(progn
(exp-ignored-return-1)
(exp-ignored-return-2)
(exp-taken-return))
Burada, progn
üç ifadeyi sırayla değerlendirir, ancak ilk ikisinin dönüş değerlerini atar. Son kapanış parantezini kendi satırına yazmayı hayal edebilirsiniz, ancak şunu da belirtmelisiniz ki, son form burada özel olduğundan (Ortak Lisp'in özel olması anlamında değil ), ancak farklı muamele ile, birinin yeni eklemenin daha muhtemel olduğunu sekansın ortasındaki ifadeler, arayanlar olarak "sonuna bir tane daha eklemek" yerine, yalnızca yeni bir yan etkiden değil, geri dönüş değerindeki muhtemel bir değişiklikten etkilenecektir.
Brüt basitleştirilmesi yapma, bir Lisp programı birçok yerinde parantez-sadece fonksiyonlar C benzeri dillerde-ve benzeri geçirilen argümanları sınırlayan değil deyim bloklarını sınırlayan. Aynı nedenlerden ötürü parantez içinde C de bir fonksiyon çağrısını sınırlayan argümanları argümanların yakınında tutmaya meyilliyiz, bu yüzden aynı şeyi Lisp'te de yaparız, bu yakın gruplamadan sapmak için daha az motivasyonla.
Parantezlerin kapatılması, açıldıkları form girintilerinden çok daha az ithaldir. Zaman içinde parantezleri görmezden gelmeyi ve Python programcılarının yaptığı gibi şekil yazmayı ve okumayı öğrenir. Ancak, bu analojinin parantezleri kaldırmanın tamamen faydalı olacağını düşünmenize yol açmasına izin vermeyin . Hayır, bu en iyi kurtarılan bir tartışma comp.lang.lisp
.