嗨,我正在用 Autolisp 开发一个程序。 它由 2 个例程文件组成。 第一个是主例程,第二个是子例程。 第一次加载程序后,子例程文件将开始运行。 在子例程中,我有一个循环编码。 我使用了重复循环。 循环将运行 n 次,并将生成 n 次输出。 (即产品重量 WT1、WT2、WT3 等)。 在此 ...
嗨,我正在用 Autolisp 开发一个程序。 它由 2 个例程文件组成。 第一个是主例程,第二个是子例程。 第一次加载程序后,子例程文件将开始运行。 在子例程中,我有一个循环编码。 我使用了重复循环。 循环将运行 n 次,并将生成 n 次输出。 (即产品重量 WT1、WT2、WT3 等)。 在此 ...
我正在尝试为个人项目(也学习 lisp)构建 Golang 通道构造的通用 lisp 实现。 到目前为止,我已经将通道实现为 class 的对象,其中包含一个队列、一个锁和一个条件变量,用于向监听函数发出新消息已添加到队列的信号。 我正在使用波尔多线程来创建线程、锁、条件变量并加入执行(来自lisp ...
我正在学习 Common Lisp (SBCL)。 我想创建一个工具来调用两个(或更多)具有几个仅在某些参数上不同的相似表达式的宏。 我想定义表达式的基础,然后用我提供的参数修改它。 为此,我想到了 lambda function 的定义。 据我所知,没有与宏的funcall类似的东西,所以我也将宏 ...
将以下代码放入~/.sbclrc允许我在从命令行使用SBCL REPL 时接收简化的错误消息,而无需深入调试器(我觉得这有点烦人)。 当从Emacs和SLIME运行 SBCL REPL 时,这是我通常与之交互的方式,每当我遇到错误时,REPL 都会坚持进入调试器。 在 Emacs 和 SLIME ...
我试图弄清楚如何将顶点属性与球拍 graphviz(图形库)一起使用。 例如添加一些样式属性。 这是我到目前为止所拥有的。 在function 对 graphviz 的定义中,它说#:vertex-attributes 必须是一个列表的列表,并且包含一个符号或过程。 但这也意味着您必须将 #:ver ...
我写了一段代码,它返回位于树的深度 N 的节点。 根被认为在深度 1。 这适用于深度 1、2 和 3。 给 但出于某种原因,这不适用于深度 4。 老实说,我不知道为什么会这样。 > n 1的第一个分支中的null似乎正在应用于某些东西。 对调试此代码的任何帮助表示赞赏。 ...
有没有办法给定坐标的 select 实体? 示例:我想要 select 个实体从 (-21,8) 到 (21,-22) <----- 分别是矩形的左上角和右下角。 以及从 (150,8) 到 (192,-22) 的 select 个实体。 以及从 (321,8) 到 (363,-22) 的 s ...
使用 mit-scheme 提供唯一的修改是从(cthen (make-syntactic-closure env '(it) (third exp)))到(cthen (third exp)) 简而言之, make-syntactic-closure有什么区别?(define-syntax ai ...
以下过程会导致无限循环: 我仍在学习 Guile,所以我有点困惑为什么会这样。 ...
我正在尝试从排序选项的文件列表中获取最后修改日期。 我在这里找到了一个来源,有人可以在其中更新上次修改文件的时间,但我在撤消该过程时遇到了麻烦。 当我尝试使用vlax-get和vlax-get-property时,我不断收到Error: Missing parameter for function. ...
朋友给了我这个问题作为我学习 Scheme 的一种方式来解决: E::= (λ VE) | (EE) | V和 V=variable 并编写一个方案 function freeVariables ,它采用自由变量。 例如: 但是,我的代码已完成,如下所示,逻辑已完成。 但这就是我添加输入时发生 ...
如果我(declare (ignore foo))然后 lisp* 不会警告我未使用的变量,但如果我确实使用该变量会警告。 有什么办法可以关闭警告吗? 询问是因为我想在我的应用程序中编写一些引入通用/标准变量名的宏,但我不想在使用宏的地方总是声明未使用的变量名,但我也不想要警告。 我宁愿不在全局范 ...
我想清楚地了解一下,LISP 中的“Atom”是什么? 由于 lispworks,“atom - 任何不是缺点的 object。”。 但是这个定义对我来说还不够清楚。 例如,在下面的代码中: “L”是原子吗? 一方面,L 不是原子,因为它是 cons,因为它是列表(如果我们谈论的是 object ...
文档很难理解。 http://www.sbcl.org/manual/index.html#Foreign-Function-Interface 部分问题是不理解如何在我的代码中实现这种类型https://docs.gtk.org/gobject/callback.Callback.html 。 ...
所以我正在尝试学习 lisp,我想出了一个简单的程序来帮助我学习它只是一个检查素数的程序。 一开始它起作用了: 然后我尝试将素数检查抽象为一个函数,并编写了这段代码: 但是这个不行。 它打印 123 并完成。 问题是,我试图只打印 (print (isprime 5)) 并且它有效,但它在循环中不起 ...
整个周末,我遇到了一个很难追查的名字冲突,但我设法将其归结为一个简短的例子 - 事情是,我认为包系统应该保护我免受此影响,所以我想知道将来如何。 如果我这样做:(ql:quickload "cl-irc") (defpackage #:clash-demo (:use #:cl ...
基本上我试图递归地从文件中读取行(因为我不能使用任何循环),但我不知道文件在哪里结束。 这是我的功能: 我正在使用计数器“索引”来停止递归,因为我不知道当我到达文件末尾时如何停止。 我将文件包含的列表放入名为“问题”的列表中。 该文件如下所示: 我希望你能帮助我。 ...
我对普通的 lisp 比较陌生,但对其他“单独编译”语言有丰富的经验(想想 C/C++/FORTRAN 等) 我知道如何进行 ASDF 系统定义。 我知道如何将包裹中的东西分开。 顺便说一下,我正在使用 SBCL。 问题是:在 .lisp 文件之间拆分代码(大包)的最佳做法是什么? 我的意思是,在 ...
我正在学习 lisp 并实现了嵌套数组解析,因此:"[1,[2,[3,[4,[5,6,7]]]],8,9]" -> '(1 (2 (3 (4 (5 6 7)))) 8 9) 在线代码片段在这里这是我第一次实现parse-line(defun parse-line (string) ...
我试过了,但没用。 作为约束,我不能使用预定义函数,只能使用 cond、eql 和 mapcar。 我也不能使用 ifs 或变量或循环 (write (count-nodes-on-level '(1 (2 (3 (6 7) 4) 5)) 4)) 这是给定的错误:*** - MAPCAR:正确的列表 ...