问题描述
我使用 JavaScript 在浏览器上运行此代码片段:
Array.from(document.querySelectorAll('input'))
document.querySelectorAll('input')
获取一个 NodeList,然后 Array.from
将其转换为数组。
我正在尝试将其转换为函数内的 Parenscript:
(ps:chain array (from (ps:chain document (query-selector "input")))))
这就结束了:
"array.from(document.querySelector('input'));"
甚至还有一个小技巧可以用 -array
的连字符实现大写字母:
(ps:ps (ps:chain -array (from (ps:chain document (query-selector "input")))))
产生:
"Array.from(document.querySelector('input'));"
我该如何解决?
观察:我使用的是 Common Lisp/SBCL。
解决方法
目前,Parenscript 只返回原始值,它们是:
- 未定义;
- 布尔值;
- 数量;
- 字符串;
- BigInit;并且,
- 符号。
代码 document.getElementsByTagName('input')
没有返回
字符串,它正在返回一些对象。这就是它无法工作的原因。