问题标签 [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.
javascript - 如何在 parenscript 表达式中插入数组下标?
我有这段代码在javascript中工作:
我正在尝试在parenscript(来自 Common Lisp 生态系统的库)中编写相同的内容。我当前草图中的表达式正在由 REPL 在一个名为 Nyxt available here的包下进行评估。
Nyxt 被设计成一个无限可扩展的浏览器。因此,用户可以在程序运行时更改代码和/或创建扩展。这是设计的实时可破解性。
这是代码:
使用ps:ps
我可以“看到” parenscript 正在构建什么:
上面的结果接近我所需要的。但是,仍然缺少一件事:在.click()
.
我有一些失败的 尝试。
- 如果我尝试:
我得到一个额外的“。”:
- 如果我尝试:
我得到一个额外的“。” 和不必要的“()”:
- 如果我尝试:
我得到一个额外的“。”:
- 如果我尝试:
我得到一个额外[0]
的论点:
我该如何插入它?
javascript - 如何使用 `Array.from` 将 javascript 代码片段翻译为 Parenscript(Common Lisp 库)?
我有这个代码片段在使用 JavaScript 的浏览器上工作:
document.querySelectorAll('input')
获取 NodeList并将其Array.from
转换为数组。
我正在尝试将其转换为函数内的 Parenscript,如下所示:
这很接近:
甚至还有一个小技巧可以通过 的连字符来实现大写字母-array
:
生成:
但是在调用时它并没有按预期工作。它返回一个空字符串。
我该如何解决?
观察:我正在使用 Common Lisp/SBCL。
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
技巧进行类似的操作,则括号会发生完全相同的问题,并且不会创建数组:
dom - 在库的 Common Lisp 生态系统中,如何使用 Clss 和/或 Plump 而不是 Parenscript 获取 DOM 的活动元素?
在浏览器的控制台(firefox)中使用 javascript,我可以这样做:
如果鼠标光标在 StackOverflow 搜索栏中,则上面的代码返回:
我可以使用Parenscript实现相同的目的:
是否可以使用 CL Plump ( manual ) 和/或Clss ( manual ) 而不是 Parenscript来实现相同的输出?
如果是这样,该怎么做?
我尝试在上面的文档参考中找到它,但我找不到它。不过,我是 CL 的新手。也许我错过了什么。
谢谢。
macros - 宏参数没有被替换
我试图完全理解编译时宏的局限性。
这是一个宏(我完全知道这不是最佳实践宏):
我编译宏:
我编译这个表格:
编译时print
输出是我所期望的。
但是,如果我看~/file
:
似乎((PARENSCRIPT:CREATE "hi" "hello") (PARENSCRIPT:CREATE "yo" "howdy"))
从未替换过参数body
,因此从未处理过。
为什么是这样?
以及关于这个主题的最佳文学作品是什么?