问题标签 [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 回答
129 浏览

common-lisp - 如何使用 parenscript 将 Lisp 列表设置为 JavaScript 变量的值?

我有:

评估为:

这是正确的预期结果。

在哪里:

  • psparenscript(完整的文档在这里)。

  • *VERTICES*在我的全球 Lisp 环境中只是一个简单的数字列表


但是,当*VERTICES*很大时,评估会导致错误:

错误:参数太多。执行时:PARENSCRIPT::COMPILE-SPECIAL-FORM,在进程监听器(1)中。

如何解决此错误?


不知道 parenscript 在内部是如何工作的,这个问题很难解决。所以我尝试改变列表传递给 ps 的方式。

以下是一些失败的尝试:

没有一个是正确的预期输出。

将 Lisp 列表变量的值传递给 parenscript 以形成正确的 javascript 数组变量赋值语句的正确方法是什么?

0 投票
2 回答
120 浏览

package - 在包中覆盖“defun”

我想从我正在创建的包中定义一个名为“defun”的宏,并且我想将其导出以在某些地方使用。有一个名为 parenscript 的库,它在它的包中执行此操作,如下所示,

当我尝试在自己的包中执行此操作时,我收到此 SB​​CL 错误

这是如何在 parenscript 库中完成的?我知道您可以输入表格;

我希望能够做到这一点,但无法弄清楚这是如何做到的?

0 投票
1 回答
110 浏览

common-lisp - 使用带有 parenscript 和 sigil 的 quicklisp

我想在 .parenscript 文件中使用一些 ps 宏。宏位于将使用 quicklisp 加载的库中。我正在使用sigil编译 .parenscript 文件。

我已经在 parenscript 文件的顶部尝试了这个:

但宏包没有得到“使用”。

从命令行加载库的工作原理:

但它感觉很笨重,而且 sigil 需要一个小技巧来防止它把 quickload 的输出转储到 javascript 输出中——这表明没有其他人这样做。

我使用 sigil 是因为我更喜欢从命令行构建 .parenscript -> .js。将考虑印记的替代品。

指示 .parenscript 文件的 quicklisp 依赖项的最佳方法是什么?

0 投票
1 回答
101 浏览

lisp - lisp:为 parenscript 构建一个 repl

我一直在努力学习Parenscript,但我发现该教程更像是运行 Web 服务器的方法。

是否已经存在或者可以创建一个 REPL,以便我可以看到调用 Parenscript 方法时输出的实际 javascript?

0 投票
0 回答
505 浏览

javascript - Common Lisp——如何做一个高度交互的单页网页应用?

我想实现一个在线文档编辑和更正平台。这可用作交互式单页 Web 应用程序想想谷歌文档,但里面有更复杂的小部件。

我已经在 React (JS) + Node.js + Postgres 中完成了这个应用程序,这花了几个月的时间,但我不太喜欢 JS 体验,特别是当处理这种非常复杂的状态和提出的解决方案变得更加复杂时在这个框架中是非常严格的,并且在某处更改一些代码具有“高”维护。

我从来没有做过任何 Common Lisp 网络应用程序,但我已经阅读了很多关于可用工具的信息,尽管有很多网络服务器解决方案(hunchentoot、clack、wookie、woo、fastcgi、...)、网络应用程序框架(caveman、ningle、radiance、lucerne、...)、html 生成库(cl-who、spinneret、...)甚至 javascript“转译”(parenscript),我的主要限制是重点关注必须在客户端专门执行大多数操作的单网页应用程序。

建筑学:

  • 后端服务器处理所有永久文档存储/检索和用户登录
  • 前端在客户端执行所有文档操作(包括中间文档状态更改,无需将每个更改传达给后端)

核心需求:

  • 完全动态的单页 Web 应用程序界面(内容主要是您正在编辑的文档)
  • 可忽略的交互延迟
  • 在主服务器上以尽可能低的负载扩展到许多用户
  • 与文档的所有交互都应该发生在客户端(包括管理中间更改)
  • 只有登录、拉取文档、推送新的最终文档状态或请求特殊操作(如文档信息的自动处理)时才应联系后端服务器。
  • 现代浏览器体验,即支持文档编辑中拖放操作的 HTML5

库要求(我不想使用最终成为死胡同项目的库):

  • 实体库(例如:hunchentoot、clack、parenscript)
  • 当然不:
    • 有人做过的库,然后有 3 年的开放错误,最后一次提交是 5 年前
    • 糟糕的文档(这意味着如果不花费数小时或阅读库代码就无法弄清楚如何做事)

我还看到有像 slurm-cl、panic、weblocks 这样的项目,但前两个似乎不再被维护或缺少一些文档,而新的weblocks看起来不错,但据我了解运行服务器端,而不是客户端,这对我来说是一个限制。

百万美元问题

很抱歉这篇长文,但你能告诉我 Common Lisp 是否有任何用于这个用例的库 - 客户端脚本吗?可能吗?Parenscript 是否符合要求?(我假设如果我选择那个,我必须从零开始写大多数东西——这也不是我的目标)。此外,如果我使用 Parenscript,我假设它也不进行 DOM 管理。

或者我不应该为此使用 Common Lisp?

0 投票
1 回答
35 浏览

emacs - Emacs 三叉戟模式键绑定未激活

我是 Emacs 的初学者。我正在尝试使用三叉戟模式(用于 Parenscript)。我已将 trident-mode 站点trident -site-here中的命令复制到我的 init.el 文件中。但是三叉戟模式键绑定 Cc Ce 不起作用。我在下面复制粘贴完整的 init.el 文件:

如果我打开一个 .paren 文件,我观察到的一件事是,repl 缓冲区到达顶部,而文件缓冲区(显示 .paren 文件的位置)位于下面。我不知道如何解决这个问题。但是我确实通过单击要更改的缓冲区名称来交换它们。我不知道它是否相关,但我正在写它以防万一那是罪魁祸首。如果可能的话,我更喜欢常规(顶部的程序文本和下面的 repl 缓冲区)设置。

我究竟做错了什么?谢谢您的帮助。

Edit-1:我添加了指向 trident-mode-site 的链接。

0 投票
0 回答
13 浏览

regex - 在 Parenscript 中使用正则表达式(正则表达式)

我正在尝试 Parenscript。在尝试使用正则表达式函数时,我得到了意外的输出。例如,参考手册显示:

但是,在我的 repl 中,我收到错误,即函数 (parenscript:regex..) 未定义。

我尝试将命名空间更改为 cl-user、ps 等,但没有任何效果。OTOH,只是为了检查,我尝试使用函数 sin、random 等,并且有效。我的意思是,在 repl 中输入 (sin 0.1) 会产生预期的输出。

任何帮助都会有很大帮助。

0 投票
1 回答
150 浏览

regex - 在 Parenscript 中使用正则表达式(正则表达式)

我正在尝试 Parenscript。在尝试使用正则表达式函数时,我得到了意外的输出。例如,参考手册显示:

但是,在我的 repl 中,我收到错误,即函数 (parenscript:regex..) 未定义。

我尝试将命名空间更改为 cl-user、ps 等,但没有任何效果。OTOH,只是为了检查,我尝试使用函数 sin、random 等,并且有效。我的意思是,在 repl 中输入 (sin 0.1) 会产生预期的输出。

任何帮助都会有很大帮助。

0 投票
2 回答
53 浏览

macros - 如何评估传递给`parenscript:ps`宏的代码?

如何评估传递给psParenscript 中宏的代码?

我知道这ps是一个宏,是不评估的原因,但是如何评估代码以传递给ps宏?

0 投票
1 回答
81 浏览

javascript - 如何将此 JavaScript 代码片段翻译成 Parenscript?

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

它根据当前网页返回一个空数组或填充数组。

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

我无法弄清楚如何将[rel="next"]作为参数的位置转换为函数调用。有人可以给个提示吗?

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