假设我有一个包含参数的列表,如何在没有括号的情况下显示它,例如:
(定义lst(list 1 2 3))(显示lst)
-
(1 2 3)
但我希望它显示为:1 2 3
我的尝试:
(define (clean-list lst)
(if
(null? lst) (display (null))
(display (car lst)))
(display #\space)
(clean-list (cdr lst)))
它返回没有括号的列表,但有一条错误消息......任何可以帮助我的人?另请注意,我最新的球拍和球拍是我的第一种编程语言 . 感谢所有答案!
1 回答
该错误是由于在
if
之后总是以递归方式调用该函数,即使列表为空也是如此 .这是一个正确的版本:
请注意,此函数仅打印列表第一级上没有括号的元素,但如果元素是列表,则使用括号打印 .