我试着在lisp中检索整数的最小值。我找到了
most-negative-fixnum
应该代表最低可能数量的变量。无论我尝试做什么都是抛出错误
变量`MOST-NEGATIVE-FIXNUM'没有约束力。
有没有具体的方法如何在lisp中获取变量的值?我对此的研究没有结果。
由于
答案 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。由于没有可用内存,您将无法打印它。