2009-10-20 16 views
7

BenNeden parenscript işlevleri tüm küçük harflere değiştirildi?

 
(parenscript:ps 
(slot-value ($ "#mytextarea") 'selectionStart)) 

O selectionStart şimdi selectionstart olduğunu Yani, JavaScript

 
$('#mytextarea').selectionstart; 

Not üretir yürütmek durumunda parenscript kullanarak. Start'daki S büyük harfini kaybetti! Büyük harf S'yi nasıl saklarım?

+2

Varsayılan olarak, Common Lisp formları (Parenscript'in girdi olarak aldığı), okuyucu tarafından büyük/küçük harf olarak katlanır. "selectionStart", daha sonra JavaScript çıkışı oluşturduğunda Parenscript'in daha sonra downcases olduğu "SELECTIONSTART" olacak. – Pillsy

cevap

7

Parenscript otomatik olarak, yani CamelCase Convention (sözcükleri ayıran çizgi) adlandırma lisp gelen dönüştürür:

(parenscript:ps 
(slot-value ($ "#mytextarea") 'selection-start)) 

sonuçlar

"$('#mytextarea').selectionStart;" 
+1

Sembolünüzde başlangıç ​​büyüklüğüne ihtiyacınız varsa, adı yıldız işareti ile önceden eklemeniz gerekir. –

1

içinde Pillsy işaret ettiği gibi, bütün semboller, üst-kasalı olan Lisp derleyicisi tarafından okunduğunda varsayılan değer. Yine de bunu kapatmanın bir yolu var. Ayrıntılar için CLHS, 23.1.2 (Effect of Readtable Case on the Lisp Reader), ve erişimcinin readtable-case açıklamasına bakın. Örnek olarak, kendi Lisp kaynak dosyasına aşağıdaki koyarak (ayrıca harf duyarlıdır sadece pratik ayar tartışmalı olan) “invert” modunu etkinleştirebilirsiniz: Maalesef

#.(setf (readtable-case *readtable*) :invert) 

, ParenScript görünmüyor Özel bir okunabilir durum-durum ayarını çok fazla yapmak için olsa bile (ve bence, yapmalıdır).

+0

Parenscript'in okunabilir durumdan en iyi şekilde yararlanmasını nasıl söyleyebilirdiniz? Parenscript derleyicisi, sembollerle s ifadeleri olarak kod alır, bu yüzden sembol adlarının nasıl okunduğunu bilmez. Artık okuyucuyu özelleştirebileceğiniz bir derleme dosyası işlevi vardır, ancak bu tüm PS kodları için işe yaramaz. . – vsedach

+0

@vsedach Bu doğru. Yine de, benim fikrimce karışık durumdaki sembollerle ne yapılacağı oldukça açık (sadece olduğu gibi bırakın), böylece tek sorun tüm büyük harf ve küçük harfli semboller hakkında ne yapılacağıdır. Şahsen, şunu varsaymayı isterim: Varsayılan olarak INVERT veya tüm bu sembollerin (geriye dönük uyumluluk için) down-kasalanması ve READTABLE-CASE olduğu gibi bir ayar yapılması. –

İlgili konular