问题标签 [gnu-common-lisp]

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 回答
183 浏览

json - 获取解析 JSON 字符串的递归调用的正确子序列

我开始为大学的家庭作业编写下面的代码,其中包括在 Common Lisp 中解析 json 字符串。我现在面临的主要问题是获得正确的 substring\subsequence 以继续递归调用并解析字符串的其余部分。基本上主要思想是递归地检查整个字符串。按照给定的语法,输入字符串应该是:

基本上我确实从字符串中删除了任何空格和任何 \" 得到一个干净的字符串 "{name:Zaphod,heads:[[Head1],[Head2]]}" ,在这里我检查位置':'并获取从 0 到 的子序列((position ":")-1),第二部分也是如此,但是当我必须传递到时问题就来了递归调用,因为我不知道如何传递字符串的正确索引。

我试图检查函数在输出中提供给我的新列表的任何元素的长度,但它不起作用/帮助,因为字符串被拆分并且\"初始输入中没有空格和字符。你能帮我找出一种方法来按照递归方法解析json字符串的其余部分吗?

这就是我到目前为止所得到的,这并不是完全错误的,因为我可以解析部分 json-string。我无法真正解析的是整个原因我不知道如何传递新子序列的正确索引:

正确的输出应该是:

0 投票
2 回答
401 浏览

docker - 在 Docker 映像中安装 Quicklisp 库

是否有用于在 Docker 上安装 cl-json(或其他 Quicklisp 库)的 Dockerfile?我见过的大多数安装说明都需要用户输入没有 --noinput 标志的命令,因此很难通过 Dockerfile 进行安装。

此外,许多说明似乎已过时或引用断开的链接和不存在的资源。使用 Dockerfile 以与 Quicklisp 等一致的方式安装它会很方便。

0 投票
2 回答
1171 浏览

lisp - 如何在 common lisp 中格式化单个反斜杠?

我目前正在尝试... \hline在 GNU Common lisp 2.49 中获得输出,但我无法使该格式正常工作。这是我迄今为止尝试获得一个反斜杠的方法:

我认为双反斜杠会使其工作,为什么反斜杠不转义另一个反斜杠?

0 投票
2 回答
48 浏览

common-lisp - 参数未按预期传递给 lisp 宏

我觉得好像我与Basic Lisp Macro 错误处于同一个球场, 但是当我想象代码在展开时应该是什么样子时,我没有看到问题并且 macroexpand 没有帮助,因为它只是不想输出任何东西我可以打印;macroexpand 只是为我运行代码。

运行它给了我输出

但如果 'arrnum' 被 'my-array' 取代,那应该没问题吧?

引用链接的问题

现在在宏扩展上,调用宏 ADD-TEST 并使用参数 VAR 获取值 G,一个符号。

当然 my-array 是一个符号,它是我想要操作的符号,那么为什么会有问题呢?

0 投票
1 回答
66 浏览

lisp - GCL中的条件如何处理?

handler-case是处理 Common Lisp 条件的关键,但 Ubuntu 18.04 上的 GCL 2.6.12 认为它是一个未定义的函数:

对于handler-bind.

GCL 手册中唯一明显的与处理条件或错误相关的功能是 GCL-specific universal-error-handler

在 GCL 中如何处理条件,最好以其他 Lisp 支持的方式?