问题标签 [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.
common-lisp - Common Lisp:写入外部程序输入
我想在 CL/CCL 中为 mpg123 控制台 mp3 播放器编写一个简单的包装器,并想知道如何写入作为衍生进程存在的 mpg123:
但是这段代码不起作用,我有点卡住了。有任何想法吗?
terminal - 在终端上使用 SBCL 和 Clozure CL 时如何使用键绑定
当我在终端上使用 SBCL 和 Clozure CL 时,我想使用键绑定。
在终端上使用 Clisp 时可以使用键绑定。例如,当您键入“Control-p”时,您可以列出您键入的代码的历史记录。您甚至可以在键入“Control-d”时删除一个字母。
您知道如何在终端上的 SBCL 和 Clozure CL 上执行与使用 Clisp 相同的操作吗?
我用的是 Macbook,操作系统是 10.11.6。
我会很感激你的帮助。
common-lisp - 如何在 Common-Lisp CLOS 中在运行时可移植地创建一个类
我需要在运行时创建一个类,可能不求助于 eval。知道在 Common-Lisp 中元类协议没有完全标准化,浏览了The Common Lisp Object System MetaObject Protocol之后,我尝试了下面的代码来创建一个类,实例化它,并将实例的一个槽值设置为一个数字:
不幸的是,此代码在 SBCL 上正常工作,但在 CCL 上却不能正常工作,其中类创建似乎工作,但实例创建(make-instance *my-class*)
导致以下错误:
我尝试查看close-mop包,它应该隐藏元对象协议的各种实现之间的差异,但我找不到任何对我的范围有用的函数或类。
所以问题是:有没有一种可移植的方式来创建一个类并在运行时通过直接使用 CLOS 的元类级别来实例化它?
macros - 为什么这个常见的 lisp 宏不计算第一个 s-exp?
我研究了 hunchentoot 包中的 define-easy-handler 宏(它创建了一个名为 NAME 的函数),并让 defun 部分工作,但我无法让这个宏将 NAME 推送到一个名为*observers*
:
一个示例调用#'add-observer
是:
函数 NAME 已定义并且工作正常,但 NAME 未添加到 list *observers*
。我是否将两个 s 表达式都放在一个 progn 中并不重要。macroexpand 清楚地显示了在push
有和没有 progn 的情况下都没有调用。我在解释什么错误?
编辑
当我用这样的progn尝试这个时:
它失败了Unbound variable: below-80
。当我将反引号放回#'push 和#'defun 时,再次#'push 不起作用。
common-lisp - 查看或提取输入到顶级 REPL 中的文本定义,非常适合 Clozure Common Lisp (CCL)
在顶级 REPL 中工作时,我有时会忘记在运行的 lisp 系统中输入了哪些定义。
我使用 Clozure CL,它提供了将应用程序保存为图像的选项,我可以这样做并且可以从我离开的地方继续,但此时无法查看所有代码,除非我单独键入并保存了代码已经到 xyz 文件了。
有没有办法获取/提取/查看我输入的定义,所以我可以将它们保存为源文件?
sockets - Clozure Common Lisp 中的 make-socket 错误
在 CCL 顶层,运行:
或者
输出以下内容:
我无法理解错误(CL 新手)。这是什么意思?我做错了什么?
sockets - 如何在 Clozure Common Lisp 中通过套接字进行通信?
在一个 CCL REPL 中,我输入:
它等待连接。
在另一个 CCL 过程中,我输入:
在这一点上,这个过程进入等待。它既不从服务器读取,也不退出。
但是,当客户端连接到服务器时,服务器会以 NIL 退出。很明显,至少建立了一个连接,但是字符串“Hello from server”。永远不会被沟通。
我确信这是我忽略的基本内容。我如何发送消息?READ-LINE 不是从流中读取的正确方法吗?我是否从服务器错误地写入?我将如何建立一个基于简单字符串的双向通信?
multithreading - 在 Clozure Common Lisp 中产生多个进程来处理许多基于套接字的连接
我有以下内容:
当一个连接进来时,它被接受并且一个流被传递给处理程序。进程在处理程序上等待(阻塞)。所以当处理程序返回时处理下一个连接。
解决方法是每个连接有一个进程(/线程),因此新连接不必等待处理程序完成对较早连接的处理。
我尝试这样做:
代替 just (funcall handler stream)
,但这最终会出错,因为在调用处理程序时流不可用。显然,因为 with-open-stream 到那时已经退出,并且流超出了范围,因此(也许?)GC'd。
然后我尝试了:
而不是 just (loop (handle-connection))
,它以循环的速度运行生成新进程,因为套接字部分的等待不再阻止执行。
创建单独的线程/进程以处理同一个套接字上的许多连接的正确方法是什么?
emacs - utf-8 的 Emacs+Slime+CCL 文件加载问题
今天刚切换到 emacs,正在使用您通过苹果商店获得的 ccl 应用程序。
当我尝试通过 Cc Cl 加载文件时,我得到以下信息:
这似乎是一个编码问题,因为当我复制粘贴时 ccl 读取它非常好。
我已经将我的 ~/.emacs 设置为包括:
我究竟做错了什么?
ps 原文是日文(汉字和假名);不确定我是否使用了错误的语言环境?
编辑:原始代码:
其中 abc 被汉字/假名字符替换。