我是新來的計劃,我想知道如何清理我作爲一個任務寫的遞歸函數返回的值。該功能只需按照從最低到最高值的順序打印BST。我的問題有些迂腐,但我很好奇。函數的輸出是數字列表,但遞歸實現會在最後返回一個空列表。即8 16 20'()。有沒有一種簡單的方法來返回數字列表並省略空列表?我可以想象幾種做法;建立一個新的列表或字符串,並在最後返回它,但是它會爲這樣一個簡單的任務增加一些額外的開銷。有沒有更簡單的方法來達到這個結果?謝謝。返回類型在球拍計劃
注意:作業完成後,我應該在這一點上得到滿分,所以這不是一個家庭作業問題。
#lang racket
(define (show lst)
(cond
[(null? (cadr lst))
'()]
; recur smaller tree
[(< (car lst) (caaddr lst))
(show (cadr lst))
])
; print cur node
(writeln (car lst))
(cond
[(null? (cadr lst))
'()]
; recur larger tree
[(show (caddr lst))])
)
(show '(16 (8 (2()()) (10()())) (20 (18()()) (30()()))))
你的第二個'cond'很奇怪,它應該有一個'else'子句。偶然運作。 – uselpa