【发布时间】:2018-10-10 03:10:44
【问题描述】:
我有:
(ps:ps (ps:var vertices (ps:lisp (cons 'list *VERTICES*))))
计算结果为:
"var vertices = [0.0, -200.0, 0, ... 0.4, 40];"
这是正确的预期结果。
地点:
ps指的是parenscript(完整文档为here)。*VERTICES*只是一个简单的平面列表 我的全球 Lisp 环境中的数字
但是,当*VERTICES* 很大时,评估会导致错误:
错误:参数过多。 执行时:PARENSCRIPT::COMPILE-SPECIAL-FORM,在进程监听器(1)中。
如何解决此错误?
不知道 parenscript 在内部是如何工作的,这个问题很难解决。所以我尝试改变列表传递给 ps 的方式。
以下是一些失败的尝试:
(ps:ps (ps:var vertices (ps:lisp (list *VERTICES*))))
=> "var vertices = 1(2, 3, 4, 0, 9, 0.1)();"
(ps:ps (ps:var vertices (ps:lisp *VERTICES*)))
=> "var vertices = 1(2, 3, 4, 0, 9, 0.1);"
(ps:ps (ps:var vertices *VERTICES*))
=> "var vertices = VERTICES;"
没有一个是正确的预期输出。
将 Lisp 列表变量的值传递给 parenscript 以形成正确的 javascript 数组变量赋值语句的正确方法是什么?
【问题讨论】:
-
“大”有多大?