如何使lisp中的列表输出更好?

如何使lisp中的列表输出更好?,lisp,listener,lispworks,Lisp,Listener,Lispworks,我用lisp声明了以下列表: (defvar car-owners-2 (list (list 'yaakov (list 'volvo 100000.0)) (list 'moshe (list 'vw 75000.0)) (list 'rachel (list 'mazda 60000.0)) (list 's

我用lisp声明了以下列表:

  (defvar car-owners-2 (list (list 'yaakov (list 'volvo 100000.0)) 
                             (list 'moshe (list 'vw 75000.0)) 
                             (list 'rachel (list 'mazda 60000.0)) 
                             (list 'sarah (list 'volvo 100000.0)) 
                             (list 'david  (list 'renault 50000.0))
                             (list 'leah  (list 'vw 75000.0))))
当我想从侦听器文件中看到它时,我得到了这个令人恶心的输出:

 CL-USER 19 : 6 > car-owners-2
    (((QUOTE YAAKOV) (QUOTE (# 100000.0))) ((QUOTE MOSHE) (QUOTE (# 75000.0))) 
    ((QUOTE RACHEL) (QUOTE (# 60000.0)))   ((QUOTE SARAH) (QUOTE (# 100000.0)))
    ((QUOTE DAVID) (QUOTE (# 50000.0)))    ((QUOTE LEAH) (QUOTE (# 75000.0))))
如何使输出正常?为什么不打印名字呢? 我希望输出如下:

((YAAKOV (VOLVO 100000.0)) (MOSHE (VW 75000.0)) (RACHEL (MAZDA 60000.0))...)
谢谢。
我使用LispWorks 6.0.1

可以通过以下方式创建相同的列表:

> '((yaakov (volvo 100000.0))
    (moshe (vw 75000.0))
    (rachel (mazda 60000.0))
    (sarah (volvo 100000.0))
    (david (renault 50000.0))
    (leah (vw 75000.0)))

可以通过以下方式创建相同的列表:

> '((yaakov (volvo 100000.0))
    (moshe (vw 75000.0))
    (rachel (mazda 60000.0))
    (sarah (volvo 100000.0))
    (david (renault 50000.0))
    (leah (vw 75000.0)))
CL-USER 19:6>

首先,我将退出调试器

这将是通常的提示:

CL-USER 19>

第19条说这是第19种形式。上面的:6表示您在调试器中,调试器中的第6个表单被读取

CL-USER 19:6>:顶部

:top将您带到顶级

然后检查变量的值,如*print level*和*print length*

CL-USER 19:6>

首先,我将退出调试器

这将是通常的提示:

CL-USER 19>

第19条说这是第19种形式。上面的:6表示您在调试器中,调试器中的第6个表单被读取

CL-USER 19:6>:顶部

:top将您带到顶级

然后检查变量的值,如*print level*和*print length*


在clozure CL和我的lispworks personal 6.0.1中,输出看起来正常…您是否键入错误?否。此处显示的输出是从我的侦听器文件复制的。在clozure CL和我的lispworks personal 6.0.1中,输出看起来正常…您是否键入错误?否。此处显示的输出是从我的侦听器文件复制的。非常感谢,但你以前是对的。它的输出很好。但可以肯定的是,将.lisp加载到lispworks的侦听器时会出现一些问题。。每次我在.lisp文件中进行更改时,我都必须重新打开lispworks,然后加载它。非常烦人。您可以重新计算更改后的表达式,然后就不必重新加载了。@。使用defparameter,它会在每次计算时设置值,只有当变量没有值时才使用defvar。非常感谢,但您之前就已经这样做了。它的输出很好。但可以肯定的是,将.lisp加载到lispworks的侦听器时会出现一些问题。。每次我在.lisp文件中进行更改时,我都必须重新打开lispworks,然后加载它。非常烦人。您可以重新计算更改后的表达式,然后就不必重新加载了。@。使用defparameter,它在每次计算时设置值,只有在变量没有值时才使用defvar。