问题标签 [parenscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
37 浏览

javascript - 如何在 parenscript 表达式中插入数组下标?

我有这段代码在javascript中工作:

我正在尝试在parenscript(来自 Common Lisp 生态系统的库)中编写相同的内容。我当前草图中的表达式正在由 REPL 在一个名为 Nyxt available here的包下进行评估。

Nyxt 被设计成一个无限可扩展的浏览器。因此,用户可以在程序运行时更改代码和/或创建扩展。这是设计的实时可破解性。

这是代码:

使用ps:ps我可以“看到” parenscript 正在构建什么:

上面的结果接近我所需要的。但是,仍然缺少一件事:在.click().

我有一些失败的 尝试

  1. 如果我尝试:

我得到一个额外的“。”:

  1. 如果我尝试:

我得到一个额外的“。” 和不必要的“()”:

  1. 如果我尝试:

我得到一个额外的“。”:

  1. 如果我尝试:

我得到一个额外[0]的论点:

我该如何插入它?

0 投票
1 回答
29 浏览

javascript - 如何使用 `Array.from` 将 javascript 代码片段翻译为 Parenscript(Common Lisp 库)?

我有这个代码片段在使用 JavaScript 的浏览器上工作:

document.querySelectorAll('input')获取 NodeList并将其Array.from转换为数组。

我正在尝试将其转换为函数内的 Parenscript,如下所示:

这很接近:

甚至还有一个小技巧可以通过 的连字符来实现大写字母-array

生成:

但是在调用时它并没有按预期工作。它返回一个空字符串。

我该如何解决?

观察:我正在使用 Common Lisp/SBCL。

0 投票
1 回答
61 浏览

arrays - 为什么 Parenscript 在这个数组创建中插入一个左括号和右括号?

我在 Common Lisp (SBCL) 中使用 Paresncript。在调用一个名为 的辅助函数后(write-input-data),REPL 返回一个字符串列表:

然后,我尝试将其转换为用 javascript 语法填充的字符串数组:

结果几乎是完美的。不幸的是,有两个问题。首先,在开头,有一个左括号:

'2937'('AVpKuU6t_T0'

它应该是一个逗号

'2937' , 'AVpKuU6t_T0'.

第二个错误在最后。有一个右括号:

'NIL')];"

预计什么都没有,只是: 'NIL' ];"

为什么会这样?我可以用 parenscript 做些什么来修复它吗?

显然,我可以解析字符串并删除括号后验,但我想这个问题有更好的方法。

==== 已更新

伟大的用户@Barmar,建议不使用任何东西来解决这个问题。我们就快到了。如果我做:

我得到了我想要的

唯一的问题是我直接插入了列表。我需要通过. (write-data)如果我尝试只插入函数调用它不起作用:

如果我尝试使用该(ps:lisp技巧进行类似的操作,则括号会发生完全相同的问题,并且不会创建数组

0 投票
1 回答
53 浏览

dom - 在库的 Common Lisp 生态系统中,如何使用 Clss 和/或 Plump 而不是 Parenscript 获取 DOM 的活动元素?

在浏览器的控制台(firefox)中使用 javascript,我可以这样做:

如果鼠标光标在 StackOverflow 搜索栏中,则上面的代码返回:

我可以使用Parenscript实现相同的目的:

是否可以使用 CL Plump ( manual ) 和/或Clss ( manual ) 而不是 Parenscript来实现相同的输出?

如果是这样,该怎么做?

我尝试在上面的文档参考中找到它,但我找不到它。不过,我是 CL 的新手。也许我错过了什么。

谢谢。

0 投票
2 回答
49 浏览

macros - 宏参数没有被替换

我试图完全理解编译时宏的局限性。

这是一个宏(我完全知道这不是最佳实践宏):

我编译宏:

我编译这个表格:

编译时print输出是我所期望的。

但是,如果我看~/file

似乎((PARENSCRIPT:CREATE "hi" "hello") (PARENSCRIPT:CREATE "yo" "howdy"))从未替换过参数body,因此从未处理过。

为什么是这样?

以及关于这个主题的最佳文学作品是什么?