リリカル合宿

3/5〜6 に、リリカル合宿に参加してきました!

7時に電車乗って、開場よりちょっと前に到着。喫茶店でティラミス食べた。

    • F#について (bleis)
      • → コンピューテーション式 (bleis → mzp)
      • モナドについて (mzp)
      • → Coq について + option がモナドであることの証明 (mzp)
        • 証明の似た所は、Ltac でまとめるといい
        • Proof with auto で始めると、〜... で、〜の後に auto で証明終了できる場合に証明完了
        • あひさめ君が Coq を始めるようです
    • F# で LRU キャッシュ
      • bleis とペアプロ
      • VS の構成
        • ソリューション
          • プロダクトプロジェクト
          • テストプロジェクト
            • FsUnit のソース (本当は lib 以下に dll で置く)
          • lib
      • テストコード
        • FsUnit と NUnit.Framework とプロダクトモジュールを open
        • actual |> should equal excepted とか書ける
          • option のときは、actual |> should equal <| Some 〜 とか書く
      • VsVim
        • 挿入モードでの Ctrl + p 使えない (印刷になる)
          • Ctrl + n も駄目 (新規作成になる)
          • (´・ω・`)
  • 昼飯

ラーメン食った。

  • 昼から
    • bleis の git 講座
      • reset 派と checkout 派があるらしい
        • bleis は rebase 派。rebase-tift。
      • Mercurial は git と比べてソースコードが綺麗」
      • git now と git vim 便利そう
    • LRU キャッシュ続き
      • get で 要素と更新されたキャッシュを返さないと・・・
        • インタフェース変わる・・・
        • 問題変更 LRUキャッシュ → ディクショナリ
    • コードレビュー
      • as パターンマッチ
        • × let hoge ({ value = v } as lru) = ...
        • ○ let hoge ({ value = v } as nyan) = let lru = nyan ...
        • あずにゃんぺろぺろ
  • 懇親会

bleis は辛いの苦手。
再帰作る為に y コンビネータ作ってるのに、作るときに再帰使っちゃあれか。楽だからよく使うけど。

    • Expression Problem
      • オブジェクト指向 : 型の追加楽、操作の追加辛い
      • Visitor パターン (オブジェクト指向) : 操作の追加楽、型の追加辛い
      • 関数型 : 操作の追加楽、型の追加辛い
      • OCaml の多相ヴァリアント使うと、両方いい感じに出来る
        • 再帰する代わりに関数を受け取る
    • リリカル上映会
      • 新しい人が来るたびに巻き戻しでたり
      • 2週目(オーディオコメンタリー)の途中で終わった
        • 3時前くらいまで
    • 数名がこっちの部屋で寝ることになった
      • あひさめ君のいびきはなんとかしないとな・・・ (もうすぐ同居人)
  • 2日目
open System
open System.Windows.Forms

let main _ =
  let form =
    new Form begin
      Width = 200,
      Height = 80,
      Text = "Button"
    end
  let button =
    new Button begin
      Left = 40,
      Top = 10,
      Width = 100,
      Text = "push"
    end
  do
    button.MouseClick
    |> Observable.scan (fun n _ -> n + 1) 0
    |> Observable.map string
    |> Observable.add (fun str -> button.Text <- str)
  do
    form.Controls.Add button
    Application.Run form

[<STAThread>]
do main ()
      • VsVim
        • Ctrl + d と Ctrl + u も駄目だった
      • 発表は間に合わなかった・・・
  • 帰り

終わってからどえりゃあ行く組に混ざって昼飯食べたけど、結局途中で帰ることにした。(あひさめ君も一緒に)
あひさめ君は豊橋に帰っていったらしい。
自分は実家へ。