0
は、反復スキームでこれら2つの再帰プログラムを作成する際に助けが必要ですか? 私は再帰を行いましたが、両方の反復を作成することに固執しています。反復スキームプログラムto反復
質問1 - 再帰
(define mylength
(lambda (l)
(cond
((null? l) 0)
(else (+ 1 (mylength (cdr l)))))))
質問1 - の繰り返し?
質問2 - 再帰
(define mylistref
(lambda (l index)
(cond
((= index 0)(car l))
(else
(mylistref (cdr l) (- index 1))))))
質問2 - の繰り返し?
Schemeにはループを再帰させるだけなので、おそらく再帰的プロセスと反復プロセスを意味します。反復は末尾で呼び出されます。したがって再帰の再帰はwhoteの結果であり、再帰的な処理は結果と何かを行う必要があります。したがって、最初の例では、後で追加して再帰的に追加する必要があります。あなたの2番目のものはその後の作業がないので反復的なプロセスです。違いが分かりますか? – Sylwester
[反復を証明付きで再帰する]の重複の可能性があります(http://stackoverflow.com/questions/40253790/recursion-to-iteration-with-proof) – Renzo