schemeで今まで書いたソースを公開

久しぶりの更新なんだからソースコードはかなり溜まっててもよさそうなものですが、ソースコードは思ったよりたまってません。
やっぱり授業中に少しずつ書いているだけじゃだめですね。
やはり言語を覚えるときと同じように書くコードをすべてschemeに切り替えたほうがいい気がしてきた。

と前置きはここまでにしておいてまずは定番のn〜1までの階乗を求めるfactorialを書く。

(define factorial(lambda (x )
              (if (= x 1)
                  1
                  (* x (factorial(- x 1 ))))))

初めて書いたソースです。ソースをテキストから写しただけなので思い入れはあまりない。
久しぶりに再帰を見たのと括弧が多いので困った記憶が残っている。


次はlengthの再実装leng

(define leng(lambda ( x )
              (if (null? x)
                  0
                  (+ 1 (leng(cdr x))))))

リスト構造を学んで初めて考えたリストの長さを求めるlengである。個人的な感想として再帰を考えるのは久しぶりで非常に興味深かったのを覚えている。

こんな感じでちょくちょくソースを2〜3個づつくらい毎週上げていこうと考えています。
ソースの改善点や、そのほか気にかかる点がありましたらどんどんコメントに残してください。