0

我在 Windows 10 上使用 Clisp 2.49 版开始学习通用 lisp。我通过官方网站链接到的这个链接下载了 Clisp。这是一个32位的版本,我找不到64位的版本(我的系统是64位的)。

无论如何,我尝试使用以下方法创建一个大数组:

(make-array 32000000)

但我收到以下错误:

MAKE-ARRAY: dimension 32000000 is not of type `(INTEGER 0
  (,ARRAY-DIMENSION-LIMIT))

当我打印时ARRAY-DIMENSION-LIMIT,我得到 16777215。我尝试通过运行更改限制(defconstant ARRAY-DIMENSION-LIMIT 100000000),但它似乎只在本地上下文中更改它而不影响实际限制,因为我仍然得到错误。

所以我查看了实现说明,它在下面说

15.1. 数组元素

维度限制(和数组总大小限制,似乎相同)取决于CPU,但即使我的CPU是64位所以它的数组维度限制应该是4294967295,它是32位限制.

有没有办法解决?少于 1700 万的限制似乎相当低,我很难相信无法创建更大的阵列。谢谢 - 任何帮助将不胜感激!

4

0 回答 0