我想用Scheme語言創建一個高效率的特殊清單。例如: -以高效率製作清單
功能名稱:
make-list
參數:max
(make-list max) -> (1 2 3 4 5 6 7 ... max)
我可以完成使用遞歸方法這個任務。
#lang racket
(define (make-list max)
(define lst '())
(define count 1)
(make-list-helper lst max count))
(define (make-list-helper lst max count)
(cond
[(> count max) lst]
[else
(set! lst (append lst (list count)))
(make-list-helper lst max (add1 count)]))
但是,這種方法可以認爲是低的。我不知道如何提高列表的效率。有人可以幫我嗎?
我知道它可能不適用於你的情況,但你可以看看懶惰的球拍,因爲這些類型的列表不需要建立,直到他們真的需要。 –
順便說一句,沒有很好的理由在代碼中使用'set!'。 –