问题标签 [gnu-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.
debugging - 如何使用 gcl 在 Common Lisp 中进行跟踪?
有没有办法打印出你的函数的所有调用来调试递归程序?
lisp - 实现 forkpty() 的 GNU Common Lisp 包
我寻求一个实现的 GNU Common Lisp 包forkpty()
;openpty()
也将是一个很大的优势,并且login_tty()
将是我可以忍受的奢侈品。(Duckduckgo、Google 等都没有帮助。)有吗?在哪里?
lisp - GNU Common Lisp 的详细信息(类型)
如果在 REPL 我输入:
然后我得到回应:
很公平。因此,如果在 REPL 我输入:
然后我得到回应:
我有两个问题。
- 这里
T
告诉我什么?如果是这样NIL
,那会告诉我什么? - 我自己在哪里可以找到这个答案?我未能在(例如)Lisp HyperSpec 中找到答案。
lisp - GNU clisp:禁止有关不适用方法的警告消息
除了警告消息外,此代码可以按我的意愿工作。在 GNU Common Lisp 中,如何在不抑制其他可能警告消息的情况下抑制该消息?
编辑以回应Vatine的友好回复:
我试过了,情况从警告升级为致命错误:
lisp - 使用 gensym 和 macrolet 构建哈希表
我正在尝试在read
ing 时构建一个哈希表(以及其他操作)。我不希望哈希表具有全局范围(还),所以我使用宏和gensym
. 在宏内部x
,我定义了一个s
类似于的宏setf
,但在哈希表中定义了一个条目,而不是在某处定义符号。它爆炸了。我想我理解错误信息,但我该如何让它工作?
编码:
输出:
common-lisp - 十进制浮点包
我了解使用二进制(或 binaryoid)浮点并以十进制表示结果时的复杂性:
但我希望避免最后一个可变数字的不合理性。在这种情况下,计算速度对我来说并不重要。
那里是否存在任何真正的十进制浮点 LISP 包?
编辑 1:理想情况下,这个包将允许任意精度,就像 bignum 对整数一样。
编辑 2,回应 Dennis Jaheruddin 的问题:
[I]如果您对最后一位不感兴趣,而只是希望数字相同,您可能只想观察前 15 位左右的数字?
我想到了那个。它行不通。例如,在 2/3 的情况下,我想要 666667 之类的东西。我看到的是:
如您所见,我什至无法使用最后一位来确定是否四舍五入;64 舍入到 60,而不是 70。但我可以丢弃最后一个数字并使用前一个数字来舍入其余的数字。不过,我对此感到不舒服,因为(a)此时我开始放弃很多精度,并且(b)我不确定这是否会导致舍入错误的方式. 十进制浮点包,最好具有任意精度,将是理想的。
编辑 3:正如 Rainer Joswig 在下面的回答中指出的那样,一个不可移植的潜在解决方案是设置浮点精度。对于那些在家跟随的人,他在这里指出,这样做是这样的:(SETF (EXT:LONG-FLOAT-DIGITS) n)
编辑 4:在他回答后的评论中,Rainer Joswig 建议研究代数系统 Maxima 和 Axiom。这样做会导致这些优秀的维基百科资源:
- 文章数学软件
- 文章计算机代数系统的比较
- 那篇文章的另见部分
- 该文章的外部链接部分,其中大部分链接指向软件列表
编辑5:我已经确定我不需要十进制浮点包,但我仍然很好奇是否有一个。可能没有。
为什么我不需要一个?答案是(a)Rainer Joswig 指向 wu-decimal 包的指针和(b)wvxvw 提到长除法的组合。
虽然 wu-decimal 没有常规特征和尾数使用以 10 为基数,但它确实引入了一个有趣的想法:将数字存储为比率。所以 1/3 存储为 1/3,而不是重复的(对于有限长度)二进制分数。尽管将存储为比率的数字相乘很快就会产生相当长的比率,但始终保持原始精度。我将使用这个想法。我不需要的是 wu-decimal 在适当的时候非常漂亮地解析和写入比率作为十进制数,所以我不会安装该软件包。如果您有兴趣简化这些值的解析和写入,请查看包。(我没用过。)
那么,剩下的就是将比率打印为十进制数。为此,我将使用长除法,就像 wvxvw 一样。我的代码有些不同,但是对于长除法的想法,我非常感谢他。
common-lisp - 有没有办法在 GCL 中使用 quicklisp?
安装/(load "/home/inaimathi/quicklisp/setup.lisp")
都失败。2011 年的这个仍然开放的任务告诉我它可能没有得到修复。
有解决方法吗?
lisp - Lisp:如何在 mac 中安装 gcl
我有 Mac OSX 10.8.4。我已经克隆了 gcl 的 git repo,并按照自述文件运行了 ./configure。
但是,我收到以下错误:
尝试了第三个选项(对于其他人我一无所知,即使在谷歌搜索后也没有得到任何解决方案)。谁能告诉我应该如何安装 gcl 或去获得一个开发环境 lisp ?
common-lisp - 从循环中的输出创建一个列表
我们的任务是以这种方式打印出帕斯卡三角形中的值
我在互联网某处复制了二项式定理的代码,定义如下:
现在我正在尝试从我的 pascal 函数中的值创建一个列表:
如果我用 (pascal 0 2) 测试该函数,它会产生 1 2 1 NIL。如何消除 NIL 并创建列表?
lisp - 确定超类型路径
给定一个内容为 1 的变量,我知道它是至少五种类型的成员:
这里有两个问题。
给定一个具有任意内容的变量,我如何确定它的超类型路径?
我在哪里可以在文档中找到答案?