如何将使用 `Array.from` 的 javascript 代码片段转换为 ParenscriptCommon Lisp 库?

问题描述

我使用 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 只返回原始值,它们是:

  1. 未定义;
  2. 布尔值;
  3. 数量;
  4. 字符串;
  5. BigInit;并且,
  6. 符号。

代码 document.getElementsByTagName('input') 没有返回 字符串,它正在返回一些对象。这就是它无法工作的原因。

Source

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...