「Common Lisp」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の9版が非表示) | |||
| 7行目: | 7行目: | ||
== Lisp 入門 == | == Lisp 入門 == | ||
この記法が基本となる。関数名に続き半角スペース区切りで引数を指定する。 | この記法が基本となる。関数名に続き半角スペース区切りで引数を指定する。 | ||
<source lang="lisp"> | |||
(関数名 引数 引数 ...) | |||
</source> | |||
四則演算も同じ。あくまで関数である。 | 四則演算も同じ。あくまで関数である。 | ||
<source lang="lisp"> | |||
(+ 1 2) | |||
(- 3 4) | |||
(* 5 6) | |||
(/ 7 8) | |||
</source> | |||
[[レキシカル変数]](他言語でいうローカル変数)への代入はletを使う。 | [[レキシカル変数]](他言語でいうローカル変数)への代入はletを使う。 | ||
一行で何個もの変数を初期化できるせいで括弧が多いぞ。 | |||
<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]] | |||