にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

関数を定義してみる

簡単な再帰を使った階乗。

gosh> (define (fac n) (if (= n 1)
        1
        (* n (fac (- n 1)))))
fac
gosh> (fac 5)
120
gosh> (fac 8)
40320

ふむふむ。括弧が最後にたくさんついて数を数えるのが大変。
インタラクティブモードでのgoshも、Emacsに付属のscheme-modeも、閉じ括弧入力時に対応する括弧をフォーカスしてくれなかった。
何かいいモードないかな。

追記

対応する括弧を教えてくれるには以下の記述を追加すればよいらしい。

;; 直前/直後の括弧に対応する括弧を光らせます。
(show-paren-mode)

Karetta|Gaucheプログラミング(立読み版)|Emacsの設定

上手く動いてちょっと満足。他の設定も参考にしてみる。