「Common Lisp」の版間の差分

編集の要約なし
 
(同じ利用者による、間の15版が非表示)
1行目: 1行目:
'''Common Lisp'''(読み:こもんりすぷ)とは、[[関数型]]の[[プログラミング言語]]である。
'''Common Lisp'''(読み:こもんりすぷ)とは、[[関数型]]の[[プログラミング言語]]である。
単に「LISP」という場合は99%くらいCommon Lispのことである。
 
単に「[[LISP]]」という場合は51%くらい「Common Lisp」のことであり、49%くらいは「[[AutoLisp]]」のことなので注意しよう。


主に[[emacs]]の設定ファイルや拡張機能を実装するプログラミング言語として使われている。
主に[[emacs]]の設定ファイルや拡張機能を実装するプログラミング言語として使われている。
6行目: 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を使う。
一行で何個もの変数を初期化できるせいで括弧が多いぞ。
<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>


以上
以上
<amazon> Common LISP </amazon>
[[category: LISP]]