Scheme Dr格式中的递归
我正在编写一个使用递归打印列表元素的简单代码:Scheme Dr格式中的递归,scheme,racket,Scheme,Racket,我正在编写一个使用递归打印列表元素的简单代码: (define (printList list) (if (empty? list) '() (begin (display (car list)) (printList (cdr list))))) 它确实有效,但我想知道是否有一种方法可以不打印空列表。当我使用(printList'(1 2 3 4))运行程序时,我得到: 1234() 有办法解决这个问题吗 谢谢您的输出包括 显示屏s
(define (printList list)
(if (empty? list)
'()
(begin
(display (car list))
(printList (cdr list)))))
它确实有效,但我想知道是否有一种方法可以不打印空列表。当我使用(printList'(1 2 3 4))运行程序时,我得到:
1234()
有办法解决这个问题吗
谢谢您的输出包括
显示屏
s:1234
(颜色:粉色)”()
(颜色:蓝色)void
,Dr Racket将不会打印函数结果,因此您可以在基本情况下返回void
:
(define (printList list)
(if (empty? list)
(void)
(begin
(display (car list))
(printList (cdr list)))))
但这样说更为优雅
(define (printList list)
(unless (empty? list)
(display (car list))
(printList (cdr list))))
如果列表为空且不需要显式的
begin
则隐式返回void
显示屏
s:1234
(颜色:粉色)”()
(颜色:蓝色)void
,Dr Racket将不会打印函数结果,因此您可以在基本情况下返回void
:
(define (printList list)
(if (empty? list)
(void)
(begin
(display (car list))
(printList (cdr list)))))
但这样说更为优雅
(define (printList list)
(unless (empty? list)
(display (car list))
(printList (cdr list))))
如果列表为空并且不需要显式的
begin
那么它将隐式返回void
,您使用它只是为了练习递归吗?因为更好(也更标准)的方法就是(对于每个显示lst)
DrScheme
在2010年将名称更改为DrRacket
。你只是在练习递归吗?因为更好(也更标准)的方法就是(对于每个显示lst)
DrScheme
在2010年将名称更改为DrRacket
。