Common Lisp是Lisp编程语言的标准化版本,旨在提高生产力。
如标题所示,如何(以编程方式)以可移植的方式(如果可能)检查符号是否代表符号宏? CL-USER>(定义符号宏某些宏某些) 一些宏 CL-用户> ...
我不知道如何调用一个函数n次以在另一个函数中使用 我有一个函数 (defun 右移 (l) (附加 l '(0))) 我需要编写另一个需要的函数
为什么Quicklisp在安装lisp-stat时找不到包Alexandria-2?
我正在尝试使用quicklisp 在我的机器上安装lisp-stat。我运行的是 Ubuntu 22.04。安装在开始后不久就失败并出现错误: 没有名为“ALEXANDRIA-2”的软件包 之前...
我想写一个函数/宏 (defun apply-funcs (函数值) ...) 这样调用 (apply-funcs (list #'f #'g #'h) x) 将执行与 (h (g (f x))) 等效的操作。如何才能做到这一点?
使用 asdf:defsystem 的 :around-compile 参数
为了更好地理解 :around-compile 的工作原理,我想跟踪(即打印输出)当前正在编译哪个组件文件。 ASDF 手册似乎暗示该值可以是 lambda
我开始使用 Common Lisp 玩一些业余爱好 webdev 项目。 对于数据库访问,我计划使用 mito 和 sxql。我正在尝试了解我是否需要做任何额外的事情来保护自己免受...
我有时使用 defmethod 来强制函数中的类型,因为语法很好。 为了举例,这是一个非常糟糕的加函数。 (defgeneric plus (x y) :文档“a
Quicklisp:无法加载任何替代方案(“libcrypto.so.1.1”“libcrypto.so.1.0.0”“libcrypto.so.3”“libcrypto.so”)
尝试通过 (ql:quickload :hunchentoot) 安装“hunchentoot”时,会产生错误: 在线程中的 CFFI:LOAD-FOREIGN-LIBRARY-ERROR 上调用调试器 # 尝试通过(ql:quickload :hunchentoot)安装“hunchentoot”时,出现错误: debugger invoked on a CFFI:LOAD-FOREIGN-LIBRARY-ERROR in thread #<THREAD "main thread" RUNNING {9461061}>: Unable to load any of the alternatives: ("libcrypto.so.1.1" "libcrypto.so.1.0.0" "libcrypto.so.3" "libcrypto.so") Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL. restarts (invokable by number or by possibly-abbreviated name): 0: [RETRY ] Try loading the foreign library again. 1: [USE-VALUE ] Use another library instead. 2: [TRY-RECOMPILING ] Recompile reload and try loading it again 3: ... ... 但是我已经安装了提到的库。因此,我尝试手动将 CFFI 指向已安装的库: * (cffi::load-foreign-library "/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1") debugger invoked on a CFFI:LOAD-FOREIGN-LIBRARY-ERROR in thread #<THREAD "main thread" RUNNING {9461061}>: Unable to load foreign library (LIBCRYPTO.SO.1.1-554). Error opening shared object "/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1": /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: wrong ELF class: ELFCLASS64. 但这会导致这个“错误的ELF”错误。 我的系统是64位Ubuntu 20.04.6 最终,我能够通过手动安装 32 位版本的 OpenSSL-1.1.1 并运行 sudo ldconfig 更新指向共享库的链接缓存来解决此问题,该服务负责 CFFI 加载外部图书馆参考资料。 — 安装编译程序以在不同处理器架构上运行的依赖项: sudo apt-get install build-essential sudo apt-get install gcc-multilib g++-multilib — 下载 OpenSSL-1.1.1 的源代码: wget https://www.openssl.org/source/openssl-1.1.1.tar.gz ^^ 或者,从 Github 版本下载 — 解压下载的代码并导航至其目录: tar -xvzf openssl-1.1.1.tar.gz cd openssl-1.1.1 — 配置构建工具来编译 32 位架构的代码并安装: ./Configure linux-generic32 make CC="gcc -m32" CXX="g++ -m32" sudo make install — 更新 动态链接器/加载器使用的共享库的缓存: sudo ldconfig 执行完上述所有操作后,我能够在 (ql:quickload :hunchentoot) REPL 中运行 sbcl,而不会产生任何错误。
我正在关注《光线追踪器挑战》这本书..我创建了一个 Vector3 和颜色 defstruct (defstruct(向量3 (:con-name nil) (:构造函数 v3 (x y z w))) (x 0.0 :
有没有办法在 Common Lisp 中并行执行表单?类似于并行 PROGN?
我有一系列数组赋值: ... (incf(aref res 1)公式1) (incf (aref res 2) 公式2) ... 公式是一些复杂的自动生成的代码,并且每个 i 都有很大不同。 ...
Common Lisp 中的 LOOP 和 Iterate 有什么区别?
Common Lisp 内置了一个强大的 Loop 宏。它非常有用且强大,我经常使用它。 我也听说过一个非常相似的东西,叫做迭代。它看起来真的很像循环,...
我有以下宏: (defmacro when-state ((state &key (test #'eq)) &body body) `(当(funcall,测试*当前状态*,状态) ,@身体)) 在 REPL 中使用它可以很好地工作......
限制 CL API、禁用双冒号访问、CL 中的权限访问管理器的可能方法
我需要隐藏危险的功能,例如, cl:open 用于从互联网下载的第三方代码。 所以我可以这样做: (包装:危险(:使用:cl)) (导入'cl:打开:危险) (导入...
我正在读取一个二进制数据文件,该文件表示 32 和 64 位浮点数的 1、2 和 3 维数组,以及一些整数。 该文件设计为由 C 程序读取,他们可以
这可能是一个 XY 问题,所以我将首先描述我的目标: 我想编写一个返回未评估的 CL 代码的函数,类似于宏,只是我不希望他返回的代码被执行...
您可以使用 clisp (或 sbcl)在出现可继续错误时自动继续吗?
这似乎是一个显而易见的问题,但我的谷歌搜索表明答案是否定的,我觉得很难相信。我刚刚开始使用教科书上的示例,并得到以下结果。我必须...
递归尾部调用优化如何处理从调用堆栈中放置/删除的内容? 专门针对类似 LISP 的语言?任何装配级别的见解都会有所帮助。 我展示...
Kate 编辑器似乎有很多描述各种语言的 xml 文件,用于突出显示。例如,commonlisp.xml 包含所有 978 个标准 Common Lisp 符号。其他项目...
Lisp 宏中使用循环 for-collect 的未绑定变量
我是一名 Lisp 初学者,我正在阅读《Practical Common Lisp》一书,特别是第 9 章。 完成本章后,我尝试扩展单元测试环境。具体...
如何要求 CommonLisp 系统在运行时在编译函数中动态查找符号?
作为序言,我正在实现两个简单的命令,我可以通过 SBCL 中的一个小包来使用它,它模拟 Allegro repl。该软件包是 sb-aclrepl,可在 SBCL 源的 contrib 文件夹中找到。