Common Lisp

Lispを学んでどうするのか…emacsをカスタマイズしまくることぐらいしか思い浮かばないが,その思想等を学ぶことは何かと役に立つはずだ.というわけで,Emacs LispはおいといてCommon Lispをやってみる.
基本編
データ構造
詳細入門編
基本編
なにはともあれCommon Lispでいろいろな式を書いてみる.
準備
2003-07-20T15:13+09:00 matsu
実行環境についての記述とサンプルのための入出力についての記述.
式と評価
2003-07-20T15:13+09:00 matsu
式の記述方法とその評価.
データ
2003-07-20T15:13+09:00 matsu
Lispにおけるデータについて概観する.
変数の定義と代入
2003-08-24T22:00+09:00 matsu
Lispにおける局所変数,大域変数,大域定数の定義と代入について.
リストオペレータ
2003-08-24T17:30+09:00 matsu
リストオペレータについていくつか.
if式
2003-07-20T15:13+09:00 matsu
Lispプログラムは全てリストなので,if文といわずif式という.
反復
2003-08-24T21:00+09:00 matsu
Lispにおける反復の表現方法.
関数の定義と呼び出し
2003-08-24T20:25+09:00 matsu
Lispにおける関数の定義と呼び出しについて.
練習 リストの最大値を返す
2003-09-15T04:00+09:00 matsu
ここまで記述したLispの基本を踏まえて練習をいくつかやってみる.この頁ではリストの最大値を返す関数を作成してみる.
練習 リストの要素のソート
2003-09-15T06:00+09:00 matsu
練習としてリストの要素をソートしてみる.
データ構造
LISt Processorという名前通り,リストはLispにおける基本的かつ中心的なデータ構造である.ここではコンスを通してまずリストについて前よりも詳しく記述し,さらにLispにおけるさまざまなデータ型やデータ構造についても記述する.
コンス
2003-09-23T18:30+09:00 matsu
Lispのリストはコンスと呼ばれる一対のポインタで構成される.このことを詳しく見ていくと,Lispにおけるリストをもう少し深く理解できる.
リストの実体
2003-10-08T21:00+09:00 matsu
二つのオブジェクトへのポインタがあるとき,そのポインタが指す先は同じ実体なのか,同じ値の異なる実体なのか,といった疑問を解決してみたい.
リストへのアクセス関数
2003-10-11T18:00+09:00 matsu
リストの任意のコンスや要素へのアクセスを可能にする関数の紹介.
キューの実装にみる破壊的な関数
2003-10-12T06:00+09:00 matsu
キューの実装を通して破壊的な関数を作ってみた.
集合とキーワード引数
2003-10-14T06:30+09:00 matsu
Lispの集合を扱う関数を試してみた.これらの関数のいくつかには,キーワード引数という引数がある.
真リストとドットリスト
2003-10-21T06:40+09:00 matsu
今まで扱ってきたリストは真リストと言われる.Lispのリストにはこの他にドットリストというリストがある.
スタック
2003-10-23T05:30+09:00 matsu
スタックはよく使用されるデータ構造なので,Lispにはリストをスタックとして扱うための関数がある.それをちょっと使ってみた.
コンシングとGC
2003-10-23T06:00+09:00 matsu
新しいコンスを作成することをコンシングといい,コンシングすると当然新しいメモリ領域が確保される.こうして新しく作成されたコンスの多くはプログラムのある時点以降は不要なゴミとなる.Lispにおいてもゴミ問題が発生することがある.
配列とベクタ
2003-10-24T06:00+09:00 matsu
Lispで配列を作ったり要素にアクセスしたりしてみた.そしてベクタについてもちょっと試してみた.
文字列
2003-11-12T07:10+09:00 matsu
Lispの文字列は値が文字のベクタとして表現され扱われるが,多くのプログラミング言語と同様,文字用の表記方法や文字列用の表記方法が用意されている.
ストラクチャ
2003-11-03T18:00+09:00 matsu
ストラクチャはいわゆる構造体だが,Lispのそれはなんかすごい.
ハッシュ
2003-11-05T08:00+09:00 matsu
Lispのハッシュを使ってみた.
練習 行列計算
2004-01-11T13:45+09:00 matsu
練習としてLispで行列計算をやってみた
練習 Gauss-Jordanの掃き出し法
2004-01-12T15:15+09:00 matsu
練習としてLispで連立1次方程式を解いてみた.
詳細入門編
ここでは基本編でざっと眺めて来た基本事項の詳細に立ち入ってみる.
ブロック
2003-11-12T05:30+09:00 matsu
ブロックは,複数の式を一まとめにして一つの制御単位とするものである.他の多くのブロックと同じ概念であるが,Lispではブロックを表現する複数のオペレータがある.
条件式
2003-11-17T06:50+09:00 matsu
Lispにはif式以外にも条件式があるらしいので調べてみた.
反復
2004-01-05T08:15+09:00 matsu
反復オペレータdoなどについてもう少し詳細に書いてみた.
多値
2004-01-06T21:10+09:00 matsu
Common Lispでは関数は値を0個以上返す.これまでは主に1つの値を返す場合の記述をしてきた.本頁では0個の値を返す,つまり値を返さない場合や2個以上の値を返す場合について記述する.
catchとthrow
2004-01-08T20:30+09:00 matsu
Common Lispではcatchとthrowを使用して例外処理を簡潔に記述することができる.
関数とクロージャ
2004-01-25T20:15+09:00 matsu
Common Lispでの関数の詳細についていろいろと試してみた.
入出力
2004-02-01T17:45+09:00 matsu
Common Lispでの(主にファイルの)入出力関数を試してみた.
シンボルとパッケージ
2004-04-27T01:20+09:00 matsu
Common Lispのシンボルには,いろいろな情報が格納されている.また,Common Lispにはパッケージというものがあって,これによってシンボルの名前空間を拡張できる.
数値計算
2004-04-28T02:10+09:00 matsu
Common Lispでいろいろな数値計算をしてみた.
マクロ
2004-04-29T19:50+09:00 matsu
コードの生成とマクロについて調査してみた.
CLOS
2004-10-22T00:10+09:00 matsu
CLOSとはCommon Lisp Object Systemの略らしい.OOというのはメソッドというしばしば破壊的な関数がバンバンでてきて,Lispとは相容れない世界かと思っていたのだが,そうではないようだ.

This article was written by Fujiko