「Common Lisp」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 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も似たような感じだ。 | 条件分岐で定番のifも似たような感じだ。 | ||
<source lang="lisp"> | |||
(if (条件) (thenのとき) (elseのとき)) | |||
</soruce> | |||
関数の定義はdefunを使う。 | |||
<source lang="lisp"> | |||
(defun 関数名 (引数 引数 引数...) (処理) (処理) (処理) ...) | |||
</source> | |||
最後の処理が戻り値になります。 | |||
<source lang="lisp"> | |||
(defun example (x) | |||
(print "Processing...") | |||
(* x x)) ; この式の結果が戻り値 | |||
</source> | |||
以上 | 以上 | ||
[[category: LISP]] | [[category: LISP]] | ||
2025年4月4日 (金) 01:26時点における版
Common Lisp(読み:こもんりすぷ)とは、関数型のプログラミング言語である。
単に「LISP」という場合は51%くらい「Common Lisp」のことであり、49%くらいは「AutoLisp」のことなので注意しよう。
主にemacsの設定ファイルや拡張機能を実装するプログラミング言語として使われている。
Lisp 入門
この記法が基本となる。関数名に続き半角スペース区切りで引数を指定する。
(関数名 引数 引数 ...)
四則演算も同じ。あくまで関数である。
(+ 1 2)
(- 3 4)
(* 5 6)
(/ 7 8)
レキシカル変数(他言語でいうローカル変数)への代入はletを使う。 一行で何個もの変数を初期化できるせいで括弧が多いぞ。
(let ((変数名 値)))
(let ((変数名1 値) (変数名2 値)))
(let ((a 1)))
条件分岐で定番のifも似たような感じだ。
(if (条件) (thenのとき) (elseのとき))
</soruce>
関数の定義はdefunを使う。
<source lang="lisp">
(defun 関数名 (引数 引数 引数...) (処理) (処理) (処理) ...)
最後の処理が戻り値になります。
(defun example (x)
(print "Processing...")
(* x x)) ; この式の結果が戻り値
以上