2015年8月9日日曜日

Lispによる関数型プログラミング入門2 記法

Lispの記法

・前置記法
1 + 2
→ 
 (+ 1 2)

つまり、関数(ここでは和演算)を最初に宣言して、引数を渡す。これはf(x)と記述するのと同じである。

・defun
means define-function

例)
フィボナッチ数計算:
> (defun fib(n)
>   (if (<= n 1)
>     1
>     (+ (fib (- n 1)) (fib(- n 2)))
>   )
> )

> (fib 5)
 8
> (fib 21)
 17711


Lispの評価と特殊形式quote、function

・quote
関数を評価せずにそのままかえす

例)
> (quote (1 2 3))
 (1 2 3)

・function
シンボルの関数をかえす特殊関数
略記 #'

例)
> (function +)

#<SYSTEM-FUNCTION +>

0 件のコメント:

コメントを投稿