当我执行时使用 parenscript
(附文:ps (槽值($“#mytextarea”)'selectionStart))
它产生 javascript
$('#mytextarea').selectionstart;
请注意,selectionStart
现在是selectionstart
. 它丢失了大写的 S Start
!我如何保留那个大写的S?
Parenscript 将自动从 lisp 命名约定(用破折号分隔单词)转换为 CamelCase,因此:
(parenscript:ps
(slot-value ($ "#mytextarea") 'selection-start))
结果是
"$('#mytextarea').selectionStart;"
正如 Pillsy 所说,当 Lisp 编译器读取所有符号时,默认情况下它们都是大写的。不过,有一种方法可以关闭它。有关详细信息,请参阅CLHS,23.1.2(Readtable 案例对 Lisp 阅读器的影响)和访问器的描述readtable-case
。例如,您可以通过将以下内容放入您的 Lisp 源文件中来启用“反转”模式(可以说这是唯一区分大小写的实用设置):
#.(setf (readtable-case *readtable*) :invert)
不幸的是,ParenScript 似乎并没有过多地使用自定义的 readtable-case 设置,尽管它可以(并且在我看来应该)这样做。