我在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
答案 0 :(得分: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)))
答案 1 :(得分:1)
CL-USER 19:6>
首先我会离开调试器。
这是通常的提示:
CL-USER 19>
19
表示它是第19版。上面的: 6
表示您在调试器中并且读取了调试器中的第6个表单。
CL-USER 19:6> :顶
: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)))