如果我执行
,则使用parenscript(parenscript:ps (slot-value ($ "#mytextarea") 'selectionStart))
它生成javascript
$('#mytextarea').selectionstart;
请注意,selectionStart
现在是selectionstart
。它丢失了Start
上的大写字母S!
如何保持大写字母S?
答案 0 :(得分:7)
Parenscript会自动从lisp命名约定(破折号分隔单词)转换为CamelCase,所以:
(parenscript:ps
(slot-value ($ "#mytextarea") 'selection-start))
结果
"$('#mytextarea').selectionStart;"
答案 1 :(得分:1)
正如Pillsy所说,当Lisp编译器读取所有符号时,所有符号都是默认的。但是有一种方法可以解决这个问题。有关详细信息,请参阅CLHS, 23.1.2 (Effect of Readtable Case on the Lisp Reader),和访问者readtable-case
的说明。例如,您可以通过将以下内容放入Lisp源文件中来启用“反转”模式(可以说这是唯一区分大小写的实用设置):
#.(setf (readtable-case *readtable*) :invert)
不幸的是,ParenScript似乎没有充分利用自定义可读表格设置,即使它可以(并且在我看来应该)这样做。