1

我在 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

4

2 回答 2

2

也许以这种方式创建相同的列表:

> '((yaakov (volvo 100000.0))
    (moshe (vw 75000.0))
    (rachel (mazda 60000.0))
    (sarah (volvo 100000.0))
    (david (renault 50000.0))
    (leah (vw 75000.0)))
于 2012-06-12T15:14:31.897 回答
2

CL-用户 19 : 6 >

首先,我会退出调试器。

这将是通常的提示:

CL-USER 19 >

19说它是第 19 种读法。以上: 6表示您在调试器中,并且读取了调试器中的第 6 种形式。

CL-用户 19 : 6 > :top

:top带你到顶级。

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

CL-USER 12 > (setf *print-level* 2)
2

CL-USER 13 > (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)))
((YAAKOV #) (MOSHE #) (RACHEL #) (SARAH #) (DAVID #) (LEAH #))

CL-USER 14 > (setf *print-level* nil)
NIL

CL-USER 15 > (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)))
((YAAKOV (VOLVO 100000.0)) (MOSHE (VW 75000.0))
 (RACHEL (MAZDA 60000.0)) (SARAH (VOLVO 100000.0))
 (DAVID (RENAULT 50000.0)) (LEAH (VW 75000.0)))
于 2012-06-12T19:34:26.537 回答