问题标签 [common-lisp]

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.

0 投票
3 回答
10999 浏览

binding - Clojure 关键字参数

在 Common Lisp 中,您可以这样做:

Clojure 没有关键字参数。一种替代方法是:

嵌套的括号太多,不得不一直打字和阅读。它还需要一个显式的哈希映射作为参数而不是平面列表传入。

什么是最惯用的 Clojure 等效关键字参数,看起来不像有人引爆了标点符号?

0 投票
7 回答
3549 浏览

deployment - 是否可以为多个平台部署 Common Lisp(或其他方言)桌面应用程序?

我想用 Common Lisp 或其他 Lisp 方言开发一个图形应用程序,它可以部署在 Mac、Windows 和 Linux 中,作为提高我对该语言知识的一种方式。理想情况下:

  1. 将编译代码
  2. 会使用一个通用的图形库
  3. 不需要安装运行时环境。

我想制作一个小游戏或图形应用程序,并能够通过在具有任何这些操作系统的计算机上的简单安装来展示它。

有人有类似情况的经验,或者可以指出图形库和编译器、运行时环境等的最佳选择......

谢谢!

0 投票
2 回答
115 浏览

common-lisp - 在实践中,REMOVE 是否会返回相同的序列?

在 Common Lisp 的任何实际实现中,REMOVE是否会返回相同的序列?该规范表明它是允许的:

remove 的结果可能与序列共享;如果不需要删除任何元素,则结果可能与输入序列相同。

例如,SBCL 似乎没有这样做,但我只做了一个粗略的(可能不充分的)测试,我想知道其他实现是做什么的。

0 投票
1 回答
398 浏览

shared-libraries - Common Lisp:在共享主机环境中使用库的最佳方式是什么?

前几天我在考虑这个问题,想看看 SO 社区对这个主题有什么看法。

就目前而言,Common Lisp 作为一个 Web 开发平台受到了一些关注,并且有充分的理由(我相信你已经对此深信不疑)。

我想知道如何以与 PHP 类似的方式在共享环境中使用库。

如果我设置 SBCL 之类的东西作为解释器来解释 Python 或 PHP 等 FASL 文件,那么使用库(例如clsql)的最佳方式是什么。

大多数都是 asdf 可安装库,但是每次发出请求时都需要并安装库,这将是一笔愚蠢的开销。

请记住,这是针对共享主机的;最好..

1) 安装库的系统范围副本以在应用程序中使用;减少空间,但使用正确版本的库可能会出现问题。

2) 允许用户(通过控制面板)为自己安装本地副本;更多空间,没有版本问题。

3)告诉他们将它包装到一个模块中并像 Python 那样按需加载它(我不确定是否/如何使用 Lisp 来完成)。仅仅能够加载一个库以供使用将是最好的选择,但我认为它们中的很多都不是为了以这种方式使用而设计的。

无论如何,想听听你的意见,谢谢。

0 投票
2 回答
1078 浏览

debugging - 如何将本地函数描述为(跟踪)?

在 common lisp 中,函数(跟踪名称)可用于查看有关函数调用的输出。

如果我的函数是在本地范围内声明的,我该如何描述它以进行跟踪?

例如,我如何跟踪栏,如下:

0 投票
2 回答
1570 浏览

java - Common Lisp 中的类自省

Java 的 java.lang.Class 类有一个 getDeclaredFields 方法,它将返回给定类中的所有字段。Common Lisp 有类似的东西吗?在阅读了成功 Lisp 第 10 章 ( http://www.psg.com/~dlamkins/sl/chapter10.html ) 中的说明后,我发现了一些有用的功能,例如描述、检查和符号 plist。但他们都没有做 getDeclaredFields 所做的事情。

0 投票
2 回答
1989 浏览

web-services - 在长时间运行的 Common Lisp 应用程序中,应该使用什么策略来管理垃圾?

如果我在 Common Lisp 映像中托管一个长时间运行的应用程序(例如 Web 服务器),我应该使用什么策略来管理垃圾收集器?

我假设,默认情况下,垃圾收集器有权花费很长时间整理堆,有时我无法预测。这可能会以我不希望的方式影响特定的浏览器请求。

Common Lisp 中是否有方法来控制它?也许通过鼓励它以“很少和经常”的方式工作?

0 投票
1 回答
541 浏览

emacs - 从 SLIME 中的 REPL 更改包 - 是否损坏?

我最近刚开始使用 SLIME 进行实验,发现一个问题让我不确定是我做错了什么还是当前的 SLIME 快照损坏了。

问题:尝试更改包(使用,!p)总是抛出错误,无论使用哪个后端。

来自 SBCL 的错误如下所示:

值 #("FOO" 0 3 (SWANK-IO-PACKAGE::FACE NIL)) 不是类型(OR (VECTOR CHARACTER) (VECTOR NIL) BASE-STRING SYMBOL CHARACTER PACKAGE)。
[TYPE-ERROR 类型的条件]

CLISP 和 CCL 抛出相同的错误,尽管措辞略有不同。

我在 Windows 上运行,但是当我在 Linux 上尝试时也会发生同样的事情。我怀疑我的 .emacs 文件中有一些我忽略的事情,或者当前版本的 SLIME 中存在故障。我昨天才开始使用 SLIME,所以我没有过去的经验可以比较它。

有任何想法吗?

0 投票
1 回答
5485 浏览

compilation - 使用 Clozure Common Lisp 编译二进制文件

给定一个简单的程序,如下所示,你会如何:

  1. 将其编译为由实现加载的单独图像文件,您将使用哪些命令行参数来加载它?

  2. 将其编译为可以按原样加载和运行的独立二进制文件。

    注意:我尝试在保存应用程序时添加“:prepend-kernel t”,只是为了引发以下错误。

    /li>
  3. 你会如何抑制欢迎信息?

    该程序

    /li>

编辑

讨厌回答我自己的问题的一部分,但我还是发现了它。

加载函数后,键入以下内容进行编译:

这将创建一个图像文件。通过将其传递给实现类型来加载它(注意:“ccl”二进制文件在我的系统路径中);

要运行顶级函数,请将其作为参数传递

0 投票
6 回答
96229 浏览

common-lisp - Common Lisp中的`set`,`setq`和`setf`之间的区别?

Common Lisp 中的“set”、“setq”和“setf”有什么区别?