我很難在PLT計劃中遞歸。您是否有提示信任/假設遞歸在Scheme中有效?
舉例來說,如果你有這樣的代碼(未完成),輸出一批「*」'S和B號‘ - ’的:
(define (stars-and-stripes a b)
(local ((define repeat (lambda(w n) (cond [(= n 0) ""] [(> n 0) (string-append w (repeat w (− n 1)))]))))
(cond
[(= 0 a) (cons (repeat "-" b) empty)]
[(= 0 b) (cons (repeat "∗" a) empty)]
[ (and (> a 0) (> b 0)) ... (stars-and-stripes (− a 1) b) ... (stars-and-stripes a (− b 1))...])))
我怎麼能相信,這部分工作正常嗎?
(stars-and-stripes (− a 1) b) ... (stars-and-stripes a (− b 1))
這是一個概念性的概念,我有麻煩抓住。
我完全同意這一切,並且在進入歸納之前我會插入更多的「原始歸納」步驟。在進入歸納步驟之前,請說服它們適用於1,2和3。事實上,在完成誘導步驟之前,您應該確信*。歸納步驟完成了「證明」,但沒有(恕我直言)幫助實際的「信仰」部分。 –
這也有助於在DrRacket的Stepper中運行一些遞歸程序。 (我不只是這麼說,因爲約翰加入線程;-)) http://www.youtube.com/watch?v=j3X07a-7YRM – soegaard
這是超級有用的傢伙,我明白現在遞歸好多了。謝謝! (它的很大一部分非常神奇) – Aspen