Schemeをつくろう(15) lambda

とうとう作っちゃった。

input> ((lambda (x y) (+ x y)) 1 2)
3

かなりはりぼて(笑

でも、

再帰できるよ!!

input> (define sum
input>   (lambda (n)
input>    (if (= n 10)
input>     n
input>     (+ n (sum (+ n 1))))))
input> (sum 0)
55

=追加したので、再帰もできるよ!!

ひき算欲しい!!

引き算なんていらないかも

そうだ、一個引く奴を定義しちゃえばいい!!

input> (define dec (lambda (n) (+ n -1)))
input> (define sum
input>   (lambda (n)
input>    (if (= n 0)
input>     0
input>     (+ n (sum (dec n))))))
input> (sum 10)
55

きゃーーーーーーーーーーーーーーーーーーーーーーーー僕のScheme凄すぎる!!!