2006年04月16日 21:46 [Edit]

Recursion vs. Iteration

なければ作ろうほととぎす。

ひげぽん OSとか作っちゃうかMona- - SICPを読もう - (7) 1章 - 反復をマスターしたいけど・・・
問題はこういう解答が思いつくかどうかなのですが、、反復の練習問題がもっとたくさんあればパターンが見えてきそうです。簡単なものから少しずつ難しいものへと。算数ドリルみたいなものですね。 どこかにそのような都合の良いものがないだろうか。

フィボナッチ数を計算する関数を、繰り返し(iteration)をつかって定義しなさい。再帰版は次の通り。

(define (fib n)
  (cond
   ((= n 1) 1)
   ((= n 2) 1)
   (else (+ (fib (- n 1))(fib (- n 2))))))

SICPの問題より良問だと思う。

Dan the Recursive Lambda


この記事へのトラックバックURL

この記事へのトラックバック
about 404 Blog Not Found and Roccoの日記 Lambda Calculusの基本は読んだので, アルゴリズムは把握しているんですよね. ちょっとドーピング? Rubyで書くとこんな感じ. #!/usr/bin/env ruby def fib(n) return n if n == 1 or n == 2 return fib(n - 1) + fib(n...
Recursion vs. Iteration # Ruby, Haskell【32nd diary】at 2006年04月17日 04:13
id:pyletさんのフィボナッチ数列(fib2)をRubyにて。 Pythonのrange(n)の意味は(0...n)でよいのかしらん。 Danさんの問題への解答は以下でよいのでしょうかね。
フィボナッチ数列【rubyco(るびこ)の日記】at 2006年04月16日 23:02
「SICPを読もう - (3) 1章 - 手続きによる抽象の構築(1-30ページ)」で反復が分からないと書いたのですが、trace を使えば視覚的に関数の呼び出しが理解できるのでこれを利用してみました。 題材としては一番単純な factorial を取り上げます。 まずは再帰版 trace を行...
[Scheme][SICP] SICPを読もう - (7) 1章 - 反復をマスターしたいけど・・・【ひげぽん OSとか作っちゃうかMona-】at 2006年04月16日 22:50