ホームへ

コラム目次 - はじめての Lisp 関数型プログラミング

はじめての Lisp 関数型プログラミング」より

コラム目次

第1章
1.画面表示だけで副作用?どんな影響をプログラムに与えるのか?5
2.人によって違う関数型プログラミングの定義7
3.定数項の事前計算14
4.純粋じゃない関数型プログラミングはダメ?22
 
第2章
5.Lispのコーディングスタイル30
6.動的型付けの実装31
7.carとcdrの語源33
8.M式とS式33
9.EV-LISPとEVQ-LISP34
10.メタ巡回的インタプリタ34
11.左結合のリスト41
12.Lisp-1とLisp-243
13.匿名関数は便利なのか?47
14.(lambda (x) x)と(function (lambda (x) x)), #'(lambda (x) x)、どう書く?48
15.純Lisp52
16.総称関数(包括関数) generic function54
17.動的関数定義は遅い?59
18.クロージャとクォート式60
 
第3章
19.関数の値は何個?―多値を返す関数66
20.複数の定義域と値域を持つ関数―多ソート代数66
21.ラムダ計算のラムダはなぜラムダ(λ)なのか69
22.SUC(0)=1, SUC(1)=2となることの確認70
23.チューリング完全71
24.チャーチ・ロッサー性71
25.再帰関数の意味論―不動点72
26.プログラムの意味論73
27.Javaのプライベート宣言は副作用のないプログラムの夢を見るか82
28.JavaやC#の文字列はイミュータブルで、Cはミュータブルで83
29.文字列をリスト型でイミュータブルにする85
30.原始再帰関数94
31.Lispの偉大さは数とリストが同じように扱えること96
32.末尾再帰と繰り返しの相互変換108
33.再帰が停止するには?112
34.再帰プログラミングはどこで使われるか113
35.高階関数って高級で難しそうだけど?119
36.外側評価でいいと思うのだけれど?125
37.クラスベースのオブジェクト指向は不平等?130
 
第4章
38.クラスベースと総称関数ベースのオブジェクト指向137
39.継承とコンポジション139
40.単一継承と多重継承140
41.オブジェクト指向は遅くないの?144
42.プログラミング言語を何で作っているのか148
43.Cより速いCommon Lisp処理系149
44.関数型プログラミングは大規模ソフトウェア開発で役に立つのか151
45.高階関数による依存性の注入152
 
第5章
46.ハノイの塔で円盤を移動し終えると……166
47.Common Lispの構造体―Common Lispの便利なデータ構造177
48.tarai関数とtak関数187
49.リスト版tarai関数188
 
第6章
50.コードメトリクスにはどんなものがあり、どれだけ測定するの?232
 
おわりに
51.関数型プログラミングはソフトウェア開発を幸せにできるか241

このページのトップへ

ホームへ


Copyright © 2016 All Rights Reserved by GOMI Hiroshi.