Arasındaki fark``,``, `setq set setf` Common Lisp?
Arasındaki fark nedir "", "", "" Common Lisp? setf setq set
CEVAP
Aslında, Lisp, sözlü değişkenleri yalnızca dinamik olanlar vardı. Ve SETQ veya SETF SET işlevi vardı.
Şimdi ne olarak yazılır:
(setf (symbol-value '*foo*) 42)
olarak yazılmıştır:
(set (quote *foo*) 42)
sonunda SETQ (SET Alıntı) abbreviavated oldu:
(setq *foo* 42)
Sonra sözlü değişkenleri oldu, ve SETQ basit bir sarıcı artık etrafında kurulmuş çok onları çok ... ... tayini için kullanılır hale geldi.
Daha sonra, birisi veri yapıları, değerleri, l-değerleri diğer diller ayna atama genel bir yol olarak SETF (Alan) icat:
x.car := 42;
yazılı olacaktır
(setf (car x) 42)
Simetri ve genellik için, SETF da SETQ işlevselliğini sağlamıştır. Bu noktada SETQ Düşük seviyeli bir ilkel olduğunu söylüyor, ve üst düzey bir operasyon SETF doğru olurdu.
Sonra makrolar sembolü oldu. Sembol makrolar şeffaf çalışsınlar diye, SETQ "atanmış olmak gerçekten sembol bir makro etti:" değişken eğer SETF gibi davranmak zorunda kalacağını fark edildi
(defvar *hidden* (cons 42 42))
(define-symbol-macro foo (car *hidden*))
foo => 42
(setq foo 13)
foo => 13
*hidden* => (13 . 42)
Biz günümüze gelene kadar SET ve SETQ eski lehçeleri kalır körelmiş, ve muhtemelen Common Lisp nihai halefleri yazmıştım.
'eq, eql arasındaki fark ne, eşit...
Lisp-1 ve Lisp-2 arasındaki fark nedir...
HTTP ve DİNLENME arasındaki fark nedir...
Bir WordPress kullanmak ebeveyn arasın...
Süreç ve sinyal arasındaki fark nedir?...