Questions tagged [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.

Filter by
Sorted by
Tagged with
0 投票
2 回答
3555 浏览

(方案)计算某些列表的所有可能组合的递归函数?

计算所有可能的列表组合的递归函数的例子是什么?例如,(combine (list 1 2 3) (list 1 2))应该返回'((1 1) (1 2) (2 1) (2 2) (3 1) (3 2)).

0 投票
2 回答
385 浏览

为什么无法在 Scheme 中调整 SRFI-4 向量的大小?

我看到 SRFI 4 没有提到调整向量的大小。我正在使用 f64vectors(我需要快速访问),并且我希望能够快速调整它们的大小(类似于 realloc 在 C 中所做的),而不必复制整个向量。

由于我没有找到对“resize-f64vector”过程的任何引用,我想知道它为什么不存在(如果制作一个新的向量并复制是我唯一的选择)。

0 投票
4 回答
3635 浏览

用 emacs-slime 加载外部

我想在我的 Emacs 23.2.1 上安装 slime。由于M-x slime启动不成功,我修改了 ~/.emacs 文件。

当然,这不适用于 ~/.emacs 文件第二行中的 slime 路径/usr/share/common-lisp/source/swank。但是,在我更改此目录后,错误仍然存​​在。它是这样说的:

无法加载“/usr/share/emacs/site-lisp/slime/swank-loader.lisp”:文件不存在。

为什么这个负载外部仍然存在以及如何使这些事情正确?

0 投票
10 回答
29069 浏览

数据库和函数式编程有矛盾吗?

我从事网络开发已经有一段时间了,最​​近开始学习一些函数式编程。像其他人一样,我在将这些概念中的许多概念应用于我的专业工作时遇到了一些重大麻烦。对我来说,造成这种情况的主要原因是我看到 FP 保持无状态的目标之间的冲突似乎与我所做的大多数 Web 开发工作都与非常以数据为中心的数据库密切相关这一事实相矛盾。

让我成为 OOP 方面更高效的开发人员的一件事是发现了对象关系映射器,例如 .Net 的 MyGeneration d00dads、perl 的 Class::DBI、ruby 的 ActiveRecord 等。这让我远离从整天编写插入和选择语句,到专注于将数据作为对象轻松处理。当然,当需要 SQL 查询的功能时,我仍然可以编写它们,但除此之外,它在幕后被很好地抽象出来了。

现在,转向函数式编程,似乎许多 FP Web 框架(如 Links)需要编写大量样板 sql 代码,如本例所示。Weblocks 似乎好一点,但它似乎使用一种 OOP 模型来处理数据,并且仍然需要为数据库中的每个表手动编写代码,如本例所示。我想您使用一些代码生成来编写这些映射函数,但这似乎绝对不像lisp。

(请注意,我没有非常仔细地研究过 Weblocks 或 Links,我可能只是误解了它们的使用方式)。

所以问题是,对于 Web 应用程序的数据库访问部分(我相信它相当大),或其他需要与 sql 数据库接口的开发,我们似乎被迫走以下路径之一:

  1. 不要使用函数式编程
  2. 以令人讨厌的、非抽象的方式访问数据,包括手动编写大量 SQL 或类似 SQL 的代码 ala Links
  3. 强制我们的函数式语言进入伪 OOP 范式,从而消除真正函数式编程的一些优雅和稳定性。

显然,这些选项似乎都不理想。是否找到了规避这些问题的方法?这里真的有一个问题吗?

注意:我个人最熟悉 FP 方面的 LISP,所以如果你想给出任何例子并了解多种 FP 语言,lisp 可能是首选语言

PS:对于特定于 Web 开发其他方面的问题,请参阅此问题

0 投票
7 回答
3594 浏览

在同一个应用程序中结合 Lisp 和 PHP 代码

目前,我为 Web 开发的几乎所有东西都使用 PHP,但它的语言限制开始让我烦恼。然而,当我开发了一些实践并维护了一些对我有很大帮助的 PHP 库时,我觉得我还没有准备好切换到 LISP 来丢弃我所有的 PHP 输出。在我只能访问常规 LAMP 托管帐户的服务器上,这甚至是不可能的。

因此,我的问题是:LISP 代码可以与 PHP 代码结合使用吗?是否有并行 LISP/PHP 的解决方案,它们的互操作性接口或可能只是一个实现另一个?或者它是一个相互排斥的选择?

0 投票
1 回答
185 浏览

在 CL 的 dotimes 循环中使用 aref?

我有一个维度为 '(3 3 2) 的数组,其名称为 test-array:

请注意,数组中最内部的列表(排名 2)是点坐标,所以通常数组是

现在我想使用这个数组中的元素来创建一个新数组。

在该数组的每一行(数组等级:0)上,我想从第一个 xy 坐标中减去第二个 xy 坐标,从第二个中减去第三个 xy 坐标。所以基本上我以参数形式寻找的结果是:

是否有任何简单的直接函数或操作仅通过操作初始数组来做到这一点?

由于我不知道对此有任何直接操作,因此我只想从初始数组中制作一个列表:initial-contents作为新数组的列表。因此,这种方法的最初目标是获取初始内容列表,即:

为此,我想到了一个使用dotimes两次的代码(外循环数是行数,内循环数是列数):

但这有一个问题,这也是问题的标题。显然,这种“参数化”方式(使用 n 和 m)为 CL 提供输入aref是不受欢迎的:(aref test-array n m 0)

为什么会出现这样的问题?你能想到在循环中使用 aref 的任何其他方法,或者用另一种方法制作 :initial-contents 列表吗?

请注意,这是我实际问题的一种相对简单的形式,因为我拥有的实际初始数组的尺寸为 (21 16 2) 并且所有 xy 坐标都彼此不同。

答案将不胜感激...

0 投票
4 回答
2226 浏览

检查 Emacs lisp 中的字符串是否全大写?

全部。我想知道 Emacs lisp 是否具有用于检查字符串是否完全由大写字符组成的内置函数。这是我现在正在使用的:

它工作正常(尽管它依赖于我只会使用 ASCII 字符的假设),但我想知道我是否遗漏了一些我应该知道的明显功能。

0 投票
2 回答
620 浏览

GNU clisp:禁止有关不适用方法的警告消息

除了警告消息外,此代码可以按我的意愿工作。在 GNU Common Lisp 中,如何在不抑制其他可能警告消息的情况下抑制该消息?

编辑以回应Vatine的友好回复:

我试过了,情况从警告升级为致命错误:

0 投票
29 回答
58413 浏览

我为什么要学习 Lisp?

我真的觉得我应该学习Lisp并且有很多好的资源可以帮助我做到这一点。

我并没有被复杂的语法吓到,但是在“传统商业编程”中,我会在哪里找到使用它而不是程序语言的地方。

有没有用 Lisp 编写的商业杀手级应用程序?

0 投票
1 回答
426 浏览

如何在 Emacs 中自定义目录列表?

我有一个可自定义的变量,其中包含目录列表。我希望能够在 Emacs 自定义模式下使用一些 INS 和 DEL 按钮对其进行自定义,如果可能的话,甚至可以使用文件选择器进行自定义。所以到目前为止我所拥有的是:

我想我必须使用该:type参数,但我不知道如何使用它。


15 30 50 per page
1
2 3 4 5
1498226