问题标签 [ccl]
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.
lisp - Why round is incorrect in CCL?
I have learning Common Lisp for 2 months, I meet a puzzle, here is the code:
anyone explain it? Thanks
multiprocessing - 使用 lisp 进行多处理,让*
我正在尝试创建一个使用let*
. 当我尝试运行它时,子进程处于 [reset] 状态。如果我使用解决方法并使用let
,则线程以 [active] 开始,一切正常。
我对这种行为感到困惑,并希望得到解释。
到目前为止一切正常。但是如果我将 let 更改为 let*,我会得到一个 [reset] 状态,但是子线程中的代码会被执行。
如果有人能给我指出一个可以解释不同状态的资源,我也会很感激。
谢谢。
common-lisp - 在 Slime Load 上,从 Cl-USER 更改默认包
当我们启动 slime 时,它默认在 CL-USER 中启动。由于我经常使用特定的包,因此我想在 slime 启动时自动将其打包到该包中。即我想省去执行以下操作的麻烦:
我尝试将以下代码放在我的 ccl-init.lisp 文件中,但包内没有工作:
multithreading - 如何在 Lisp 中获取读写锁而不释放它?
我正在使用 Clozure CL 编写应用程序。在应用程序中,我需要写几个文件,所以我为每个文件做了一个读写锁。
现在我正在尝试编写一个退出函数。它检查是否所有文件写入都已完成,然后退出。基本上它的工作原理如下:
- 获取所有文件读写锁
- 退出覆铜板
我阅读了Clozure CL 文档,但找不到像抓取写入锁这样的功能。我只能找到“grab-lock”、“with-read-lock”和“with-write-lock”。'grab-lock' 对读写锁不起作用,另外两个会自动释放锁。那么如何获取所有文件读写锁(而不是释放它们)并退出应用程序?
json - 如何在 Hunchentoot 中处理原始数据
我正在使用 RESTAS、Hunchentoot 和 CL-JSON 开发 Lisp API。我有这样定义的路线:
现在我使用 Postman 发送 HTTP POST 请求,请求正文中包含一些示例 JSON 数据,如下所示:
请求正文清楚地通过了,因为我可以将它输出到屏幕上,但是这decode-json
部分给我留下了 500 服务器错误。我尝试了一些看似合理的组合,但我无法解析该 JSON。plist
理想情况下,我想将其解析为alist
或哈希表。非常感谢任何帮助。
json - ST-JSON JSO 对象的解构宏
我有另一个关于在 Common Lisp 中解码 JSON 的问题。我决定ST-JSON
作为我的工具。我能够获取JSO
包含 JSON 数据的对象,并使用st-json:getjso
. 我想编写一个原则上类似的宏destructuring-bind
,它将为以 JSON 字段命名的变量提供本地绑定(从那时起,我开始怀疑这是否是一个好主意,但这是一个不同的问题)。我想出了以下内容:
但是当我尝试在对象上使用它时JSO
,我得到了对象The value PARAMS is not of the expected type STRUCTURE.
在哪里的错误PARAMS
。谁可以给我解释一下这个?
谢谢。
if-statement - `if` 的替代实现 - 难以理解的行为
我想if
用布尔逻辑和宏编写我自己的。我想出了以下实现:
我在几个案例中手动测试了它,它按预期工作。但后来我写了一个简单的测试函数来执行一系列测试,得到了一个我仍然无法理解的结果。我写了这样的函数:
当我运行测试时,我得到以下输出:
第二个失败案例显然在手动运行时与作为此函数的一部分运行时给出不同的结果。我尝试使用 SLDB 对其进行调试,结果确实与独立执行不同。我怀疑我错过了一些关键的执行细节或类似的东西。有人可以向我解释这里发生了什么吗?帮助真的很感激。
PS 我的实现是 Clozure CL。
lisp - clozure common lisp中的读取错误
有一个包含外语字符的 s 表达式文件,我正在阅读如下:
它在 ccl 1.8 中读取文件没有错误,但在 1.9 下抛出错误:
有谁知道出了什么问题,以及如何解决?我可以根据要求发送数据文件。
common-lisp - 将标准输出永久重定向到 Common Lisp (CCL) 中的文件
我正在尝试将 stdout 永久重定向到一个文件,但我能找到的所有关于这样做的示例都涉及在 let 或使用标准输出全局的 with-open-file 中这样做。有没有办法可以进行应用程序范围的重定向?
编辑:这是我尝试使用标准输出进行重定向的方式:
probe-file
这会停止向 REPL 的输出,但print 调用中的文件(确实存在并且被 看到)中没有显示任何内容。
编辑:我试过使用 Dribble 功能:
但我收到以下错误:
错误:通用函数没有适用的方法:#STANDARD-GENERIC-FUNCTION CCL::STREAM-SET-COLUMN #x30200006557F 使用参数调用时:(#0) 执行时:#,正在处理 Listener(11)。键入 cmd-/ 继续,cmd-。要中止,cmd-\ 以获取可用重新启动的列表。如果继续:尝试再次调用它类型:?其他选项。
macos - 如何在 Clozure 中获取前面的命令?
我在 Mac 上使用 Common Lisp Clozure 环境。获取之前在 REPL 中输入的命令的快捷键是什么?