Schemeの課題をあの実装で の1
小宮先生*1の授業の課題をいろいろなインタプリタでやってみる企画。
Gaucheは宇宙標準だと思うのでインストール方法とかは省略して、goshで起動。
$ gosh gosh> (define (sum x)(cond ((= x 1) 1) (else (+ x (sum (- x 1)))))) sum gosh> (sum 1) 1 gosh> (sum 10) 55 gosh> (sum 9999) 49995000 gosh> (sum 99999999) GC Warning: Out of Memory! Returning NIL! out of memory (28). aborting...
課題は、1〜nの総和を求めるsumを作り、スタックオーバーフローさせること。
よくよく考えりゃScheme実装にbignumがあるかないかを事前に調べておく必要があるのか。。