Caution
お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。
辞典
- トップページ
- Lisp辞典
Lisp辞典 一覧ページ
| 初心者向け: 概要と特徴、学習順ガイド | S式・マクロ・lambdaを中心にLispの全体像と学習順を案内。 |
| 【環境構築】Lispの開発環境 | SBCLのインストールとREPLの起動。 |
| append / nconc(リスト連結) | 複数リストを連結した新しいリストを返すappend関数。 |
| apply / funcall(関数の動的呼び出し) | funcall・applyによる関数の動的呼び出し方法。 |
| 連想リスト(alist)/ assoc | コンスペアのリスト(alist)とassocによるキー検索。 |
| S式 / アトム / nil / t | リスト以外のオブジェクトを指すatomの概念とnil・t。 |
| バッククォート(` , ,@) | バッククォートとコンマでリストをテンプレートとして構築。 |
| car / cdr / cadr / cddr(リスト先頭・末尾) | リストの先頭要素を返すcar・残りを返すcdrと組み合わせ関数。 |
| 文字型(#\A)/ char-code / char-upcase | #\a記法・char=・char-upcaseによるCharacter型の操作。 |
| クロージャ(レキシカルスコープの関数) | 定義時のレキシカルスコープ変数を保持するクロージャ。 |
| cons セル(car / cdr ペア構造) | carとcdrのペアを作るconsセルとリスト構造の関係。 |
| defclass(CLOS クラス定義) | CLOSのdefclassでスロット付きクラスを定義する方法。 |
| defmacro(マクロ定義) | コンパイル時にコードを変換するマクロをdefmacroで定義。 |
| defgeneric / defmethod(総称関数) | defgeneric・defmethodによる引数の型別メソッド定義。 |
| defpackage / in-package(名前空間) | defpackageによるパッケージ(名前空間)の定義と継承。 |
| defstruct(構造体定義) | defstructで構造体を定義しコンストラクタ・アクセサを自動生成。 |
| defun(関数定義) | (defun 名前 (引数) 本体)の構文で関数を定義。 |
| defvar / defparameter(グローバル変数) | defvarとdefparameterによるグローバル変数・定数の宣言。 |
| do / dotimes / dolist(繰り返し) | dotimes・dolist・doマクロによる繰り返し処理の書き方。 |
| Emacs Lisp 入門 | Emacs Lispの基本とバッファ操作・キーバインドの制御入門。 |
| with-open-file(ファイル入出力) | with-open-fileでファイルを安全に開閉して読み書きする方法。 |
| format(書式付き出力) | ~a・~d・~%などのディレクティブで書式付き出力を行うformat関数。 |
| gensym(ユニークシンボル生成) | マクロで変数名衝突を避けるためのユニークシンボル生成。 |
| handler-case(コンディション処理) | handler-case・handler-bindによるコンディション処理。 |
| make-hash-table / gethash(ハッシュテーブル) | make-hash-table・gethash・maphashによる辞書操作。 |
| Hello World(最初のプログラム) | REPLの起動から最初のprintプログラムの実行手順。 |
| 高階関数(mapcar / funcall / apply) | 関数を第1級オブジェクトとして扱うmapcar・reduce・#'。 |
| if / cond(条件分岐) | if・cond・when・unlessによる条件分岐の使い分け。 |
| lambda(無名関数) | (lambda (引数) 本体)でその場に無名関数を定義する方法。 |
| let(ローカル変数束縛) | (let ((x 1)) 本体)で並列にローカル変数を束縛。 |
| let*(逐次変数束縛) | 先の束縛を後の初期化式で参照できるlet*による逐次束縛。 |
| レキシカルスコープ / ダイナミックスコープ | letのレキシカル束縛とdefvarのダイナミック(スペシャル)束縛の違い。 |
| Lisp の歴史(1958年〜) | 1958年のMcCarthyの設計からANSI標準化までのLispの歴史。 |
| リストの基本(list / quote) | list・car・cdr・consによるリスト生成と操作の基本。 |
| loop マクロ(強力な反復処理) | for・collect・sumなどのサブキーワードで書く強力なloopマクロ。 |
| mapcar / mapc / maplist(リストへの関数適用) | リストの各要素に関数を適用して新リストを返すmapcar。 |
| CLOS 多重継承 / method-combination | CLOSの多重継承とC3線形化によるメソッド解決順序。 |
| values / multiple-value-bind(多値返却) | valuesで複数値を返しmultiple-value-bindで受け取る方法。 |
| 数値型(整数・浮動小数点・有理数・複素数) | 任意精度整数・有理数・浮動小数点・複素数のネイティブサポート。 |
| Quicklisp(パッケージ管理) | (ql:quickload)でライブラリをインストールするパッケージマネージャ。 |
| read(S式の読み込み) | 標準入力や文字列からLispオブジェクトを読み込むread関数。 |
| 再帰関数(リスト処理・木構造) | 基底ケースと再帰ケースでリスト処理や数列を計算する再帰関数。 |
| remove-if / remove / delete-if(要素除去) | remove-if・find-if・count-ifでリストを絞り込む操作。 |
| REPL(Read-Eval-Print Loop) | SBCL・CCLの起動とSLIME/SLY連携を含むREPLの使い方。 |
| restart-case(リスタートによる回復) | restart-caseとinvoke-restartで例外からの回復を実装。 |
| Scheme 入門 | R7RS・最小主義設計・衛生的マクロなどSchemeの独自概念の紹介。 |
| setq / setf(変数への代入) | setqでシンボルに値を代入し、setfで場所(place)に汎用代入。 |
| error / warn / signal(コンディション通知) | signal・error・warnによるコンディション通知と独自条件クラス定義。 |
| SLIME / SLY(Emacs 上の開発環境) | Emacs上でCommon Lispを開発するSLIMEとSLYの比較と使い方。 |
| sort / stable-sort(リストのソート) | 比較関数を渡して並べ替えるsort・stable-sortの使い方。 |
| ストリーム(入出力の抽象化) | 標準ストリームと文字列ストリームを含むI/O抽象化の仕組み。 |
| 文字列(string)の操作 | upcase・subseq・trim・string=等の文字列基本操作。 |
| コーディング規約(命名・インデント・括弧) | ハイフン区切り命名・*スペシャル変数*・インデントの慣用スタイル。 |
| シンボル(symbol) | 変数・関数名・キーワードとして使われる名前付きオブジェクト。 |
| 末尾再帰と末尾呼び出し最適化(TCO) | 末尾呼び出しをループに最適化するTCOとアキュムレータパターン。 |
| use-package / export / import(パッケージ連携) | in-package・use-packageでパッケージを切り替え・継承。 |
| when / unless(条件付き実行) | 真のときに複数フォームを実行するwhen・偽のときのunless。 |