タグ

ブックマーク / maoe.hatenadiary.jp (4)

  • undefinedの代わりに$notImplementedを使おう - maoeのブログ

    Haskellで一からコードを書くとき、よく型だけ書いて実装はundefinedにすることがあります。これはとても便利な常套手段なんですが、規模が大きくなってきたり、undefinedな数が多くなってくると不便に思うこともあります。 undefinedとplaceholders 一通り関数とその型の概要ができてきて、小さく動かせる範囲で実装していきましょうという段階に入ると、動かしながら実装したくなるものです。 このとき未実装の部分をundefinedにしておくと、実行時には例外が上がります。残念なことにこの例外はどこから上がったものなのかエラーメッセージを見てもわかりません。 例えばこんな感じ… Foo: Prelude.undefinedこれじゃつらいので行番号を出せるようにします!というのがplaceholdersライブラリです。 使い方は簡単で、 f :: MonadFooBar

    undefinedの代わりに$notImplementedを使おう - maoeのブログ
  • プログラミングCoqの2章をHaskellに翻訳してみた - maoeのブログ

    皆さん、小悪魔CoqチュートリアルことプログラミングCoq読んでいますか?僕は大変楽しく読ませていただいています。今日第2章にあたるProof-editing mode であそぼうが公開されました。今回はCoqの証明支援の側面がよくわかる章になっていて興味深いのですが、扱っている命題はまだ簡単で、Haskellでも十分表現できそうです。 というわけでHaskellに翻訳してみました。 今回、Haskellの拡張をいくつか使っています。 Coqの表記と対応関係を取るためにExplicitForAll(Rank2Typesで自動的に有効になる) prop1で、forall付きの型を引数に取る関数の型を表現するためにRank2Types orとandを表す型を演算子で表すためにTypeOperators こうしてみてみると、Coqが自動的に作った仮定がHaskellにおける仮引数に対応づけられて

    プログラミングCoqの2章をHaskellに翻訳してみた - maoeのブログ
  • やさしいFunctional reactive programming(概要編) - maoeのブログ

    あと、やはりネットワーク周りなどI/Oの多いプログラムの書きにくさが課題になっている印象。関数的なI/OはFRPで解決できそうな気がするんだけど調べてない。そろそろFRPをちゃんと理解したいなー。 Parsec 3活用事例: Keepalived構文チェッカ - maoeのブログ なんて書いてから早1ヶ月半、ようやくFRPが掴めてきたのでわかったことをまとめてみます。 Reactive programmingって何? FRPの前に、一般的にwikipedia:en:Reactive programmingと呼ばれるパラダイムについて触れておきます。reactive programmingとは疑似言語を使ってかなーり大雑把に説明すると、 var a = 1 var b = a + 1 a = 10 // aを書き換える print b // => 11print bの出力は2ではなく11です

    やさしいFunctional reactive programming(概要編) - maoeのブログ
  • Haskellでの並列・並行プログラミングの今: Parallel and Concurrent Programming in Haskell - maoeのブログ

    HaskellコンパイラGHCの作者の一人であり並列RTSを書いた人であるSimon Marlowが、Haskellでの並列・並行プログラミングの今を切り取ったを出した。 Parallel and Concurrent Programming in Haskell: Techniques for Multicore and Multithreaded Programming 作者: Simon Marlow出版社/メーカー: O'Reilly Media発売日: 2013/07/12メディア: Kindle版この商品を含むブログを見る The Free Lunch Is Overから8年、Haskellでの並列・並行プログラミングの今がどうなっているのかを俯瞰しつつ、実際の問題を解決するときに陥りがちな罠や、高い性能を出すためのtipsなどが読みやすくまとまった一冊になっていて、Hask

    Haskellでの並列・並行プログラミングの今: Parallel and Concurrent Programming in Haskell - maoeのブログ
  • 1