1. イントロダクション
関数プログラミングの"よく言われる"利点
- 代入文がない
- 副作用がない(変数の値は変更されない)
- 実行順を来にしなくて良い(式の値は変更されないから、いつ評価しても同じはず) 参照透明性。
2. 構造化プログラミングとの類似
1.で述べたことは「〜でない」を言っただけ。積極的な利点として、
- モジュール化設計への利点 (構造化プログラミングでは、ブロックの出入り口はただ1つ、だとかである。)
3. 関数の貼りあわせ
- 再帰的なパターンの例 : reduce
- リストの扱い : map
- ラベル付き順序ツリー : redtree
4. プログラムの貼り合せ
- g . f の実装がスゴイ!!!gを読みつつ、必要になったら必要なだけfを評価する。 (遅延評価)
5. 人工知能からの例
- 高階関数と遅延評価を用いて、ツリーの評価をする例
0 件のコメント:
コメントを投稿