Lisp'de anaporik koşullara bir örnek ne olurdu? Lütfen kodu da açıklayınız.Lisp'de anaporik koşullara bir örnek ne olurdu?
cevap
bir örneği, ortak Lisp LOOP
olup:
(loop for item in list
when (general-predicate item)
collect it)
değişken IT
Test ifadesinin değeri vardır. Bu, ANSI Common Lisp LOOP
özelliğinin bir özelliğidir.
Örnek:
(loop for s in '("sin" "Sin" "SIN")
when (find-symbol s)
collect it)
döner
(SIN)
sadece "SIN"
varolan sembol, burada sembol SIN
için bir isimdir çünkü. Ortak Lisp sembol adlarında, varsayılan olarak dahili büyük harf adları vardır.
Paul Graham'ın On Lisp bölümünün Anaphoric Macros üzerinde bir bölümü vardır.
Aslında, bu kod yinelenen kaçınan ifadeleri yazmak için kısa yoludur. Örneğin, karşılaştırma:
(let ((result (big-long-calculation)))
(if result
(foo result)))
ve it
sadece (big-long-calculation)
yılında hesaplandı ne başvuran bir özel addır
(if (big-long-calculation)
(foo it))
.
** @ Greg Hewgill: ** Teşekkürler, hala Paul Graham'ın kodunda bir tür kayıp var, ama işlenmesi eğlenceli. – blunders
@blunders: Gerçekten. Anaphoric makroları, muhtemelen Lisp'teki farklı makro stillerine aşina değilseniz, başlamak için en iyi yer değildir. Lisp'de harika bir okuma var. –
** @ Greg Hewgill: ** Kabul ediyor. Temel olarak The Little Schemer ve benzerlerini içeren birkaç LISP kitabı taradım. "Anaphoric koşullu" bu soru için araştırma yaparken rastgele ortaya çıktı: http://stackoverflow.com/questions/3920046/is-it-common-for-a-language-to-evalute-undefined-as-equal-to- false-if-so-why- – blunders
Sadece "anaporik" terimini doğal dillerle ilgili olarak bildiğim - örneğin, bir zamir daha önce belirtilen bir isim için anaforik bir referans olarak düşünülebilir. "John bir programcı. Google için çalışıyor." Bu örnekte, "o", "John" a anaporik bir referanstır. Bu yüzden, bir "anaporik şartlı" nın Lisp programlama bağlamında ne anlama geldiğini açıklamanız gerektiğini düşünüyorum - bu yaygın olarak kullanılan bir terim değil. –
** @ Jim_Lewis: ** Burada, "anaporik şartlı" nın Lisp programlama bağlamında ne anlama geldiğini açıklaması: http://weblogs.java.net/blog/2006/06/29/more-literate-programming-language- level-anaphora – blunders
@Jim Lewis: Şaşırtıcı olmayan bir şekilde, bu tam olarak ne * anaphoric *, makrolara başvururken anlamına gelir. Bağlantılar ve örnek için cevabımı görün. –