Ortak lisp'de bağlama (LET) ve semboller (= değişkenler) arasındaki fark (basit terimlerle) arasındaki fark nedir?common-lisp: ciltleme ve sembol arasındaki fark
cevap
Semboller ve değişkenler iki farklı türde varlıklardır. Sembol bir şeyin adıdır; değişken, bir değer için bir kapsayıcıdır. Değişken bir sembolle isimlendirilebilir. Bağlama, bir sembol ile bir değişken arasındaki ilişkidir; Bağlama devrede olduğunda, bir değişkene adına göre başvurabilirsiniz. let
formu böyle bir bağlanma oluşturur.
Üzgünüm Yeterince açık olmasaydım. Bu öğretici bakıyordu: http://en.wikibooks.org/wiki/Common_Lisp/First_steps/Beginner_tutorial arasındaki farkı nedir : 1 setf (let ((1))) ve ( – martins
(let ((a 1)) ...) bir değişken (yerel sözcük kapsamı ile), A sembolü ile bu değişken arasındaki ("let" kelimesinin içindeki sözcüksel bağlamda) bir bağ oluşturur ve onu 1 olarak başlatır. (setf a 1) farklı şekilde davranabilir: A bağlaması varsa, o zaman değerini değiştirir. Bağlanma yoksa, genel bir A bağlaması oluşturur ve onu 1 olarak başlatır. Ancak, genel bağlanma türü belirtilmemiş bırakılır ve Lisp uygulamaları (ve sürümleri) arasında farklılık gösterir. Yani A adında bir değişkeniniz varsa, setf değeri değiştirecektir; Aksi halde sonuç tam olarak belirtilmemiştir. –
(let ((a 1))), son noktaya gelmeden önce, açılış noktasının sonuna gelindiğinde, son noktaya ne olursa olsun, geri dönüş paranteziyle eşleşen kapanma dirseğinin bulunduğu noktaya kadar a'nın 1 değerini ayarlar (veya tanımlanmamış olur). Sıklıkla işlevin sonunda kapsam dışı kalması gereken yerel değişkenlere gereksinim duyduğunuz bir işlevin bedenini görüyorsunuz, böylece orada bir izin kullanabilirsiniz.
(setf a 1) a değerini 1 olarak ayarlar ve daha önce tanımlanmış olanın (defparametre, defvariable veya let olsun) ya da bir değere ihtiyaç duyan yeni bir özel değişken olduğunu varsayar.
Bundan biraz daha karmaşık ama açıklamak için lisp pirzola sahip olduğumdan emin değilim.
- 1. neyin arasındaki fark '! =' Ve '<>' mysql
- 2. XeLaTeX ve pdfLaTeX arasındaki fark
- 3. javax.sql ve java.sql arasındaki fark?
- 4. netTcpContextBinding ve netTcpBinding arasındaki fark
- 5. Sürücü ve sağlayıcı arasındaki fark
- 6. HttpCookie ve Çerez arasındaki fark?
- 7. typedef arasındaki fark ve tanımlamak
- 8. Python'da {} ve [] arasındaki fark nedir?
- 9. Dize [] ve [dize] arasındaki fark
- 10. Redis ve kafka arasındaki fark
- 11. mapM ve forM arasındaki fark
- 12. ASCIIEncoding ve Encoding Arasındaki Fark
- 13. NSLog ve DLog arasındaki fark
- 14. jsRender ve jsViews arasındaki fark
- 15. UNIX'teki $ @ ve $ * arasındaki fark nedir?
- 16. java.util.Scanner ve java.util.Scanner arasındaki fark. *
- 17. ServiceProcessInstaller ve ServiceInstaller arasındaki fark
- 18. string.h ve strings.h arasındaki fark
- 19. dtrtrs ve dtrsm arasındaki fark
- 20. Kodlama ve harmanlama arasındaki fark?
- 21. IsGenericType ve IsGenericTypeDefinition arasındaki fark
- 22. autoconf ve autoreconf arasındaki fark
- 23. SCM ve SVN arasındaki fark
- 24. Ondalık ve ondalık arasındaki fark
- 25. önünde arasındaki fark() ve başlamak()
- 26. BackgroundWorker ve System.Threadding.Thread arasındaki fark
- 27. C++ - (*) arasındaki fark. ve ->?
- 28. $ arasındaki fark nedir? ve PowerShell
- 29. Ipa ve xcarchive arasındaki fark
- 30. Arşivleme ve sıkıştırma arasındaki fark
"... ve sembolleri (= değişkenler)" ile ne demek istiyorsun? Tanımladığınız iki kavram için bize örnek cümleler verebilir misiniz? –