白石さんを問いつめる会

  • 正式には『本物のプログラマHaskellを使う』読者の集い
  • 参加者は、付いて来れない人と説明されなくてもわかってる人に二分されてた感じ
  • 自分個人としては、あの連載は未来の読者に向けたものだと思ってる
  • 以下、つらつらとメモ
  • mokeheheさんのLT
  • SUPER MONAO BROS.
  • 横スクロールゲー
  • unsafeInterleaveIO
  • 存在型を使って処理をまとめる
  • 最初は田中さんのhsdlを使おうとした
  • グラフィックスUIはSDL
  • githubにソース
  • 今までの連載で取り上げたデバッグはprintfデバッグのみ
  • 表明とデバッガについてはまだ書いてない
  • HUnitはIOアクションのテスト
  • 未説明の話題
  • 多相性
    • 存在型の実例、GADT
  • モナド
  • デバッグ
    • 表明とデバッガ
  • テスト
  • データ構造
    • Purely FUnctional Data Structures
    • Data.Seq
    • Data.Map、Data.IntMap
    • グラフ
  • FFI
    • 配列の使い方
    • GHC拡張(一部は説明済み)
    • 他の言語からHaskellを使う方法
    • C++などのクラスの使い方
  • viewパターン
    • 型をviewとしてパターンマッチできる
    • 関数を適用した結果でパターンマッチする
  • 最適化
    • プロファイラ
    • コア言語
  • GHCの最適化機能
    • テクニック
    • 6.12で追加される機能
  • モナド以外の一般化のためのクラス
    • Category
    • Arrow
    • Applicative
    • Traversable
    • Foldable
  • Cabalの使い方
  • Darcsの使い方
  • 総称的プログラミング
  • メタプログラミング
    • Template Haskell
    • 型レベルプログラミング
    • 関数従属は変わる可能性があって後回し
  • ライブラリ
  • wxHaskell
  • unix
  • Win32、COM、.NET
  • ネットワーク
  • web
    • ヒアドキュメントはHugsにはあるがGHCにはない
  • データベース
  • 補足が必要なもの
  • System.Process
  • データ並列Haskell
    • 今後の拡張に伴う変更
  • 非叙述的多相性
    • 候補が二つあるので決まるまで詳しい説明は後回しに
  • 今後の予定
  • データ構造+viewパターン
  • 最適化
  • 木村さんの質問2
  • rubyと比べて下位互換性でぎゃっということある?
  • haskellエキスパートに聞けばこの仕様は不安定というのはある
  • さかいさん「コンパイル通らなくなるから安心」
  • FFIでぎゃっということはあった
  • ライブラリが添付されなくなるとか
    • windowsのことを気にせずにライブラリを切り捨てる人たちがいる
    • 6.10.2でtimeパッケージが削除されてぎゃ、10.3で戻る
    • readlineパッケージ
    • editlineビルドしにくい haskelline
  • kinabaさんの質問
  • 固まってない仕様の比較とかは?
  • まだ説明していないことがたくさんあるので。。。
  • ユニットは値が返らないことを示すためのもの
  • kinabaさん 合成モナドのliftうざい
  • テンプレートHaskellで生成
  • makeファイルみたい
  • 合成する順番
  • 取り出す順番が変わる
  • どういう処理をしたいかによって,合成の順番を考える
  • kinabaさん 動的スコープじゃなくて静的スコープは?
  • さかいさん 遅延評価と動的スコープを組み合わせるといつの時点のスコープ?
  • さかいさん MonadPlus則の2番目はIOモナドは満たさない
  • さかいさん モナド変換子を使うと混乱するので,新しいモナドを定義している
  • kinabaさん どの階層にいるかがわからなくなる
  • CGIモナドはReaderモナドやWriterモナドを合成して作られている
  • liftはラップしてユーザーが意識しなくていいようにしている
  • くさかべさんの質問
  • Haskellで存在型は使えるのか?
  • forallはあるがexistsは存在しない?
  • GADTスタイルを使う?
  • GADTだとなぜ関数のボディを書かなくても関数ができてしまうのか
  • wxHaskell
  • パッチはほとんどshelarcyさん
  • 目的はネイティブGUI
  • autoformsで型からダイアログとかを自動生成
  • それに使うのがWxGeneric
  • ハイレベルライブラリが特徴