next up previous
Next: 4.3 高階手続きによる抽象化 Up: 4 Scheme言語を用いた抽象化プログラミング Previous: 4.1 変数値の定義

4.2 関数の定義

関数の定義も同様にdefineを使います. CommonLispと違って,関数名と引数をくくってリストに します.

==> (define (average a b) (/ (+ a b) 2.0))
AVERAGE 
==> (average 1 2)
1.5
次のように関数定義の内部に関数を定義する ことも可能です.

==> (define (factorial n)
        (define (iter product counter)
          (if (> counter n)
                product
                (iter (* counter product)
                      (+ counter 1))))
        (iter 1 1))

FACTORIAL 
==> (factorial 5)
120


generated through LaTeX2HTML. M.Inaba 平成18年5月6日