はじめに#
オブジェクト指向言語の世界では, デザインパターンが人気!
関数型言語の世界でも, OO の影響を受けて,
きっと誰かがパターンを考えているに違いないと考えて,
いろいろとネットで情報収集してみた.
思ったとおりで, いくつか動画をみつけたのでまとめてみる.
Functinal programming patterns for the non-mathematician#
15 分くらいに短くまとまっている動画. JavaScript.
関数に成り立つ法則によってまとめている.
- Composition laws
- Lenses laws
- Fmap laws
- Monad laws
- Applicative laws
- Monoid laws
- Arrow laws
SlideShare のプレゼン資料
Functional Programming Patterns#
動画はリンク先から.
プレゼン, 動画ともにとてもボリュームがある. 導入部の説明がとても笑える.
SlideShare のプレゼン資料
Patterns and Functional Programming#
Patterns and Functional Programming from Chariot Solutions on Vimeo.
この本を書いた人の動画.
Amazon:
Pragmatic Bookshelf:
既存の OO Pattern を FP で置き換える.
こんな記事もみつけた.
Replacing Object Oriented Patterns
Introduction
Replacing Functional Interface
Replacing State Carrying Functional Interface
Replacing Command excerpt
Replacing Builder For Immutable Object
Replacing Iterator
Replacing Template Method
Replacing Strategy
Replacing Null Object
Replacing Decorator
Replacing Visitor
Replacing Dependency Injection
FP 独自のパターンも紹介.
Functional Patterns
Introduction
Tail Recursion excerpt
Mutual Recursion
Filter-Map-Reduce
Chain of Operations
Function Builder
Memoization
Lazy Sequence
Focused Mutability
Customized Control Flow
Domain-Specific Language
これはあとで読みたい.(できれば日本語訳で!!)
Functional Design Patterns#
Clojure による,パターンの紹介.
内容をみていないのだけれども, ブックマークだけしておく.
- State/Event,
- Consequences,
- Accumulator
- MapReduce,
- Reduce/Combine,
- Recursive Expansion,
おわりに#
シンフォニーとミニマルミュージック#
OO でのパターンと FP のパターンでは, うけるイメージが違った.
OO のパターンからは, 堅牢な構築物のようなイメージを受ける. それは,
クラス図で表現されているからかもしれない.
それに対して, FP からは, ミニマルな文様なようなイメージを受ける.
微細なパターンが組み合わさって, 全体をつくるような. FP
で言うところのパターンは小さいので, OO でいうところの idiom
のようにもとらえられる.
それは, 堅牢な交響曲と, 微細なテクノミュージックのような違いを感じる.
今年の目標は関数型パターンをみにつけること.#
去年の目標は, OO のデザインパターンを身につけることが目標だった.
今年は, FP のパターンを身につけることを目標にしよう.
それにしても, FP のパターンは Gof のような教科書が見当たらない.
動画の内容にも言えることだけれども,
いろんなひとがそれぞれの意見を持っているような群雄割拠状態.
だれでもいいので,
すごい本とか出してこの分野を統一してくれないかなと思ってみたり.