「Common Lisp」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の9版が非表示)
7行目: 7行目:
== Lisp 入門 ==
== Lisp 入門 ==
この記法が基本となる。関数名に続き半角スペース区切りで引数を指定する。
この記法が基本となる。関数名に続き半角スペース区切りで引数を指定する。
(関数名 引数 引数 ...)
<source lang="lisp">
(関数名 引数 引数 ...)
</source>


四則演算も同じ。あくまで関数である。
四則演算も同じ。あくまで関数である。
(+ 1 2)
<source lang="lisp">
(- 3 4)
(+ 1 2)
(* 5 6)
(- 3 4)
(/ 7 8)
(* 5 6)
(/ 7 8)
</source>


[[レキシカル変数]](他言語でいうローカル変数)への代入はletを使う。
[[レキシカル変数]](他言語でいうローカル変数)への代入はletを使う。
(let ((x (+ 1 2)))
一行で何個もの変数を初期化できるせいで括弧が多いぞ。
<source lang="lisp">
(let ((変数名 値)))
(let ((変数名1 値) (変数名2 値)))
(let ((a 1)))
</source>
 
条件分岐で定番のifも似たような感じだ。
<source lang="lisp">
(if (条件) (thenのとき) (elseのとき))
</source>
 
関数の定義はdefunを使う。一個目の括弧内が引数だ。
<source lang="lisp">
(defun 関数名 (引数 引数 引数 ...) (処理) (処理) (処理) ...)
</source>
 
関数の戻り値は「最後の処理」だ。
<source lang="lisp">
(defun example (x)
  (print "Processing...")
  (* x x)) ; この式の結果が戻り値
</source>


以上
以上


[[category: プログラミング言語]]
<amazon> Common LISP </amazon>
 
[[category: LISP]]