午前中に軽く泳いでから電車に飛び乗って神保町へ。まったく予習していかなかったから(予想どおり)話がさっぱりわからなかった。

6c2d11b1.jpgDSC03795

DSC03797

第14章 もうちょっとだけモナド / @ffu_DSC03794

  • https://speakerdeck.com/fujimura/moutiyotutodakemonado
  • 差分リストの「差分」はProlog用語で差分で管理されてたが仕組みはあとかたもない。
    • 右結合になるというのはちょっとちがう.. (kazu)
    • 最近はプレイズビルダーをつかう。TextやByteString。差分リストはつかわれていない。継続をつかっている。
    • http://mew.org/~kazu/material/2012-builder.pdf
  • Reader: configファイルのよみこみは命令型だったらグローバル変数にしちゃうよね (kazu)
    • 関数型なら引数を1つふやすだけだが、モナドにして地下配線にしちゃうとすっきり (kazu)
  • Q: ネストしたMaybeができてしまうのはなぜ? (kazu)
  • A: DBの結果がMaybe、Parseした結果がMaybeなってるときに。
    • >>= をつかってればjoinはいらないはず。圏論的にはモナドはjoinで定義されてるらしい。(kazu)

[2013-01-20 13:50]

補足: 例題で比較する状態系のモナド / @kazu_yamamoto

[2013-01-20 14:03]

第15章 Zipper / @shokosDSC03798

[2013-01-20 14:23]

LT @master_qDSC03799

  • metasepiの紹介
    • http://metasepi.masterq.net/
    • NetBSDをHaskellで実装しようというプロジェクト。
    • OSSをつかった社内開発: OSS本家の開発工数は社内でつかえる開発工数に比べるとでかいのでマージで死ぬ。
    • POSIX APIきらいだけど、上に乗ってるアプリはつかいたい。
    • スナッチ: http://ja.wikipedia.org/wiki/スナッチャー
    • jhcをつかうとstandaloneのC(libcなしで動く)が生成できる。
    • 過去プロジェクトの失敗。スクラッチで書くのは無謀。既存のモノリシックカーネルを元にするけど型は全部IOになっちゃうやろ。
    • bootloaderでMapつかっても60kBくらいにかならない。リッチにいこう。
    • https://www.youtube.com/watch?v=3Z-c6nhDBw8
  • 簡約!λ力娘の紹介

DSC03802DSC03803DSC03805DSC03806DSC03807

[2013-01-20 15:05]

休憩 〜15:30

菓子パンもぐもぐ

DSC03808

演習タイムDSC03810

[2013-01-20 15:33]

Writerモナドを使ってみようDSC03811

  • 「計算の部分は純粋にした方がよかったかも」

DSC03812

[2013-01-20 16:36]

Stateモナドを使ってみよう

DSC03815

[2013-01-20 16:43]

EitherモナドDSC03818

DSC03817

[2013-01-20 17:09]

DSC03816

LT: Hakyll改造で快適なブログ編集 / @kei_qDSC03820

  • 趣味でhaskellをやっている。
  • markdown/literate haskellなどからhtml/rssを生成するツール。
  • ブラウザが勝手にリロードしてほしい。
  • livereload拡張をwebsocketでつっついている?
  • https://www.youtube.com/watch?v=4AVRDCm2FPY

[2013-01-20 17:20]

  • Hakyllの作者は彼女にふられていま日本にいるらしい。
  • localでwebsocketという発想

[2013-01-20 17:25]

LT: @kazu_yamamoto

LT: 品川でゆるいフットサル

  • 抽選で月2回くらいあたる。
  • 次は 1/26, 2/3 10:00〜12:00

LT: mrubyの夕べ

  • 1/28 17:00〜19:20

LT: 永続スプレー木と永続スプレーヒープDSC03825

  • スプーレ木は二分探索木。
  • アクセスするたびにその要素がルートになり動的バランスされる。
  • 永続木構造だと親へのリンクはない → Zipperをつかえばok.
  • パターンマッチでzig zagをボトムアップを実装できる。
  • スプレー木はトップダウンがいい → Zipperいらなかった...

[2013-01-20 17:40]

@seizansさんと@Lost_dog_さんの挨拶で終了。

DSC03826DSC03827

[2013-01-20 17:43]

感想: スタートHaskell2はスタートHaskellと比べてずっと難しかった。完全に挫折。

外に出ると月のまわりに虹ができてた(あとで調べると光環というらしい)が写真で撮るには露出差が大きすぎて写らず。

DSC03832

電車空いてるなぁとおもいつつ、きんつばをたべながら帰宅。

22b8b4bf.jpg