Partake(告知サイト)
http://partake.in/events/60b9a21c-8282-4abe-8820-099d65f69a62
togetter
http://togetter.com/li/442212
以下の書籍をテキストとした、セミナー形式と演習形式を組み合わせた勉強会なのです。
![]() | すごいHaskellたのしく学ぼう! (2012/09/21) Miran Lipovaca 商品詳細を見る |
会場はいつもの IIJ 大会議室 (17階)です。参加者は50人弱でしょうか。
今回は最終回ということで、モナドの残り(14章)とZipper(15章)が範囲です。
予習は不完全な状態でしたが、可能な限り目を通し、写経してから参加しました。
■14章「もうちょっとだけモナド」 @ffu_ さん
以下、メモ。
- 差分リストを使うと右結合になるのはウソ。
- 関数結合はオーダー1。詳細は@kazu_yamamoto さんの資料参照。
■Blaze Builder のヒミツ
http://mew.org/~kazu/material/2012-builder.pdf
http://mew.org/~kazu/material/2012-builder.pdf
- Blaze BuilderがHaskellでは一般的になり、ByteStringにもBlaze Builderが付いている
- 今は差分リストではなくBlaze Builderが使われている。
- 最近は差分リストを学ぶのは意味が少なくなってきている。
- ByteStringはテキストはビルダーが付いているのでそれを使いましょう。
- 差分リストの名前はprologに由来する。「差分」という語からのイメージとは異なる。
- 不変の初期値を与えて実行したいときにReader Monadを使う
- 圏論では、Monadはjoinで作られている。でもHaskellではjoinは使わなくてもいける。
- joinをするときにはバインドをすべき。
- 関数名にMつけてhoogle探すと、Monad対応版の関数が見つかったりする
- @kazu_yamamoto さんのブログ「例題で比較する状態系のモナド」
- 関数idは、最初は何に使うかわからない。foldで関数合成する際の初期値に使える。
- Maybeモナドは途中でescapeするためのモナド。Stateとは別に考えた方が良い。
■15章「Zipper」 @shokos さん
- 木構造やリスト、ファイルシステムをHaskellで効率的に扱うにはどうすればよいか、のお話。
- 個人的に15章は写経する時間がほとんど取れず、本に目を通したくらいだったので消化不良気味です。無念。。。
■LT1「Haskellで作るOS: Metasepi」&「簡約!λカ娘(4)の紹介」
@master_q_hentai さん
- 今日もあいかわらず、面白いネタとトークが繰り広げられました。
- Haskellの型システムの恩恵を活かしたOSを、Haskellで作る!とのことで、斬新すぎる。
- あと「簡約!λカ娘(4)」の頒布会と、中身の紹介もありました。
- この多彩な才能はマジ羨ましい。。。
■演習タイム
15時から30分ほど休憩タイム。そのあとは17時過ぎまで演習タイムです。
演習問題
http://wiki.haskell.jp/Workshop/StartHaskell2/exercise14
問題「Writerモナドを使ってみよう」 解答例: @igrep さん
問題「Stateモナドを使ってみよう」 解答例: @apstndb さん
問題「Readerモナドを使ってみよう」 解答例: @apstndb さん
ダメだ、ぜんぜんスラスラ解けない。。。
と、17時くらいまで悩んでました。17時過ぎからはLTタイムです。
■LT2「Hakyllとlivereloadの組み合わせによるブログ更新」 @kei_q さん
- Hakyllという、Haskellによる静的ページ生成ツールを使ってブログを自動更新するお話。
- エディタで記事を書いて保存すると、自動的に検知してブラウザが更新され、最新のブログが表示されるように改良したとのこと。
- 毎日1つ、HaskellのTipsを書く事を今年の目標にしている。
- ブログ自動更新を実現するため、ローカルでWeb Socketを使っている。この発想がおもしろい。
■LT3「永続スプレー木と永続スプレーヒープ」 @kazu_yamamoto さん

(↑クリックすると資料に飛びます↑)
- zigとzagという操作で、アクセスしようとするノードがルートになるよう木が動的に構成される。
- スプレー木とZipperの関係のお話。
★感想:
さすがに最終回だけあって、難しかった。。。
でも、いちおう全7回、皆勤で参加して、なんとかHaskellの思想とか利点は理解できたと思います。
モナドとかも、マスターしたとはとても言えませんが、面白そうということはわかった。
あとはIFPH読書会の方で、引き続きHaskellを継続していこーと思ってます。
普段使ってるJavaとかと全然違う空気を感じられるHaskell勉強会、とても刺激的。
最後に、全7回、とてもスムーズに運営してくださった関係者の皆様、ありがとうございました。