问题标签 [clozure-cl]
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.
common-lisp - 如何在纯 IPv6 网络上使用 Clozure CL?
在仅 IPv6 的网络中工作时,我尝试用 Clozure CL 替换 SBCL,但遇到了这样的错误:
问题是许多库在使用CCL:MAKE-TCP-SOCKET
时没有指定地址族或指定:internet
.
有没有办法ccl:make-socket
在运行时修补以覆盖此设置?
sockets - 通用 lisp 上的 usocket 超时错误
我cl-smtp:send-email
在调用时遇到了问题,这似乎源于超时错误usocket:socket-connect
。
这是我正在尝试做的事情:
这似乎是发生故障的调用(根据回溯):
这是错误:
错误:错误
#<USOCKET:TIMEOUT-ERROR #x302001E5FDED>
执行时:USOCKET::RAISE-ERROR-FROM-ID,在进程监听器 (475)。
奇怪的是,相同的函数调用在其他机器上也有效,但在我当前的 mac 笔记本电脑或我一直在使用的基于云的 mac 上却没有。
我在 OS 10.13.3 的 MacBook Pro 上运行 Clozure Common Lisp 1.11.1
以下是回溯仅供参考的快照:https ://imgur.com/a/e2xcf
有任何想法吗?任何帮助将不胜感激。
user-interface - 如何使用 Common Lisp (Clozure CL) 库?
我正在 Mac 上学习 Common Lisp (Clozure CL),并想创建一个简单的 GUI。我已经从 CLiki 下载了“ltk”库并将其放入根级别的项目目录中(我假设我必须这样做,因为我找不到初学者的说明)。
“LTK - a Lisp binding to the Tk toolkit”文档的第 4 页说,在(compile-file "ltk")
使用(load "ltk")
. 但是,我收到此错误消息:
错误:找不到文件#P“/Users/myName/Desktop/lisp_experiments/GUI_EXAMPLE/ltk” 执行时:CCL::FCOMP-FIND-FILE,在进程监听器(4)中。键入 cmd-。要中止,cmd-\ 以获取可用重新启动的列表。类型 :?其他选项。
我还使用了完整的文件路径名并得到了同样的错误。
我究竟做错了什么?
谢谢你的帮助。
马克
ps - 几乎没有关于这种事情的新手教程在线引导用户逐步完成该过程。
user-interface - 未找到 Common Lisp ltk 'button' 类
我正在 Mac 上学习 Common Lisp (Clozure CL) 并安装了 quicklisp,在这里有一位慷慨的贡献者的帮助。'ltk' 库在运行 (ltk::ltk-eyes) 或 (ltk:ltktest) 时工作。
运行 (ql:quickload "ltk") 似乎可以工作,因为它返回以下内容:
加载 1 个 ASDF 系统:
ltk
;加载“ltk”
我在运行从“ltk”文档中获取的以下代码时遇到问题。这是脚本:
但是,当我运行 (hello-1) 时,我得到了这个:
错误:找不到名为 BUTTON 的类。执行时:FIND-CLASS,在进程 Listener(4) 中。键入 cmd-/ 继续,cmd-。要中止,cmd-\ 以获取可用重新启动的列表。如果继续:尝试再次查找课程类型:?其他选项。
我的猜测是函数定义中没有正确访问“ltk”库?我试图通过使用 ltk:with-ltk 来解决这个问题,因为它似乎是一个 ltk 函数。
但这产生了以下错误。看来我越来越接近修复它了,因为 2D 画布也出现了,GUI 提醒我错误。
谢谢你的帮助。
arrays - 在 Common Lisp (ClozureCL) 中,什么表达式产生类型为 `(SIMPLE-ARRAY ARRAY (5 3 *))` 的值?
我正在尝试使用 ClozureCL 学习 CL,并且正在使用Google 的 Lisp koans。
剧透警告:我正在给出一个答案来构建我的问题,因为如果我不这样做,提交的答案可能不会有针对性。
此处的代码显示了x
通过的值。
尽管超出了类型符号中使用的模式,但我觉得我学到的东西不多。我想看看我是否可以使用x
表单中的值通过测试,(type-of ...)
以便我可以通过示例将实际值与类型联系起来。
也就是说,这是我目前未受过教育的猜测。我标记的断言; <!>
对于我的第一个选择值失败x
。
我的问题是:如果您被限制使用解决公案的(type-of <val>)
<val>
方法?
迄今为止的观察:
- 这里,
(type-of x)
is(SIMPLE-ARRAY T (5 3 33))
,这显然不是我想要的。我想要(SIMPLE-ARRAY ARRAY (5 3 *))
矢量元素。 - 看来我只能使用
fixnum
值指定维度,并且设置:adjustable t
使数组“明确可调”,这显然意味着数组不再是SIMPLE-ARRAY
.
data-structures - 为什么交联的 defstructs 会导致堆栈溢出?
在玩图表时,我遇到了一个我不太理解的奇怪错误。下面的代码重现了该问题。
我使用 SBCL 和 Clozure 得到了相同的结果。设置*print-length*
为可管理的值不起作用。
所以我的问题是:为什么这段代码不创建与循环列表相同的无限打印循环(即,没有堆栈溢出并且可以使用 Ctrl-C 停止)。任何输入表示赞赏。
谢谢,保罗
performance - 如何加快 Common Lisp `IF` 语句的编译速度?
我有一个系统可以生成决策树并将它们转换为嵌套的 Common Lispif
语句,其中包含检查变量值是>=
或<=
给定整数的谓词,例如
然后我用它eval
来编译 Lisp 代码,生成运行速度比解释原始决策树快得多的函数。然而,这个编译步骤花费了惊人的时间:一个包含 5000 个嵌套 if 的函数需要花费一分钟来编译(在 Powerbook 上的 Clozure Common Lisp 中),尽管生成 if 语句需要大约 100 毫秒。为什么这么简单的结构要花这么长时间?我可以做些什么来大大加快速度,也许是一些声明?我非常感谢您提供的任何指示。
common-lisp - 发生错误时如何让 Clozure 退出
我正在尝试在 CCL 下运行程序,因此当程序因任何原因完成运行时,它应该退出回操作系统。当前使用此命令行(在 Windows 上):
当程序成功运行到正常完成时退出,但如果出现错误,例如内存不足,它会在调试器中结束。当出现错误时,你如何告诉 Clozure 也退出?
lisp - Emacs 中的 SLIME 和 CCL minibuffer 文档
在使用 Emacs、SLIME 和 Clozure CL 时,我有一个小小的抱怨:(aref
我还没有看到任何其他实例)的函数签名仅显示为(aref a)
.
当我去源代码时,有问题的代码以(defun aref (a &lexpr subs)
. 据我所知,&lexpr
不是有效的 CL lambda 列表关键字。因此,这表明 SLIME 由于“weird”关键字而没有显示正确的函数签名。
但是,当我对 做同样的事情时svref
,没有什么(至少对我而言)可以证实上述假设。所以也许 SLIME 也能做点什么。
任何人都可以指出相关文档(我在 SLIME 手册和 CCL 手册中没有找到任何相关的内容)或者有人有解决方法/解决方案吗?