下面是该页面的链接:Chapter 3, Practical: A Simple Database。从本质上讲,我有一个列表数据库,其中包含我想要显示的四个值。这是用来完成的
(defun dump-db ()
(dolist (cd *db*)
(format t "~{~a:~10t~a~%~}~%" cd)))唯一的问题是输出不太正确:
TITLE: Home
ARTIST: Dixie Chicks
RATING: 9
RIPPED: T
... (Shortened for brevity)由于某种原因,"Home“没有出现在第10栏,有人能告诉我为什么吗?我正在使用SBCL来运行代码,最新版本。
发布于 2013-03-30 01:24:19
两件事:
备注
0]说您正处于调试循环中。别管它了。help显示了该命令。
Problem
也许这是SBCL的一个bug。您可能想在它的邮件列表中讨论它。这将是有用的。
我的猜测是:
* (dump-db)
^^ <- 2 characters
TITLE: Home
^^^^^^^^ <- 8 characters, 2 less than specified如果您回到顶层,您会看到SBCL提示符是* -它有两个字符。现在您可以看到Home的第一个缩进少了两个字符。因此,Lisp打印机认为提示符的两个字符在同一行上,然后位置10在接下来的八个字符上-比所需的少两个字符。也许Lisp打印机被REPL的某种编程方式弄糊涂了。接下来的几行就可以了。
顺便说一句,这不会发生在LispWorks或Clozure CL上。
发布于 2013-03-30 00:26:52
0] (dump-db)
TITLE: Home
ARTIST: Dixie Chicks
RATING: 9
RIPPED: T
TITLE: Fly
ARTIST: Dixie Chicks
RATING: 8
RIPPED: T
TITLE: Roses
ARTIST: Kethy Mattea
RATING: 7
RIPPED: T
NIL
0] (dump-db)
TITLE: Home
ARTIST: Dixie Chicks
RATING: 9
RIPPED: T
TITLE: Fly
ARTIST: Dixie Chicks
RATING: 8
RIPPED: T
TITLE: Roses
ARTIST: Kethy Mattea
RATING: 7
RIPPED: T
NIL
0] 它似乎已经自我修复了..。然而,我不确定是如何或为什么(我仍然希望得到答案的问题)。
https://stackoverflow.com/questions/15707198
复制相似问题