言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

  1. トップページ
  2. 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-combinationCLOSの多重継承と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。