整数lisp的最小值

时间:2016-12-19 12:20:00

标签: lisp common-lisp

我试着在lisp中检索整数的最小值。我找到了

most-negative-fixnum 

应该代表最低可能数量的变量。无论我尝试做什么都是抛出错误

  

变量`MOST-NEGATIVE-FIXNUM'没有约束力。

有没有具体的方法如何在lisp中获取变量的值?我对此的研究没有结果。

由于

2 个答案:

答案 0 :(得分:5)

它应该如下工作,使用例如SBCL作为Common Lisp的实现:

CL-USER> (lisp-implementation-type)
"SBCL"
CL-USER> (lisp-implementation-version)
"1.3.12.51-868cff4"
CL-USER> most-negative-fixnum
-4611686018427387904
  

[...]应该代表最低可能数字的变量

这将是可能的最低fixnum。你也有很多数字:

CL-USER> (* 10000 most-negative-fixnum)
-46116860184273879040000

答案 1 :(得分:2)

由于Common Lisp将bignum作为其规范的一部分,因此从语言的角度来看,您可以获得的数值值有限。

由于机器具有有限的内存,您将体验到机器可以拥有的数量有限的限制。实现不可能知道这个数字或者在没有实际尝试的情况下向您展示,或者实现有一些想法。在没有开销的情况下,您可以使用以字节为单位的可用内存作为估计值,每个可用字节将有8位。例如,我的机器有大约11GB可用,所以我想我可以使用10GB作为实际的存储和标志,即。 80G位为实际数字。 -2 ^ 80G + 1或〜-10 ^ 2900000000。由于没有可用内存,您将无法打印它。