タグ

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

  • 2013年8月現在のHaskell開発環境 - maoeのブログ

    以前はHaskell Platformを使っていたのだけど、Cabalの依存関係ソルバがあまり賢くなかったこともあり、いわゆるdependency hellに陥ることが多かった。それからというものHaskell Platformを使わない環境を使っている。OS Xでは公式のインストーラやらHomebrewやMac Portsなど幾つかの方法が用意されているが、こんな方法もあるよということで紹介してみよう。 GHCのインストール GHCのリリース版は自分でビルドしない。時間が掛かるから。インストーラは使わずにtarball版を使う。これはインストール先を自分で指定したいため。 tar zxvf ~/Downloads/ghc-7.6.3-x86_64-apple-darwin.tar.bz2 cd ghc-7.6.3/ ./configure --prefix=/usr/local/ghc/

    2013年8月現在のHaskell開発環境 - maoeのブログ
    sirocco
    sirocco 2014/04/28
    "cabal sandbox init (略) 後はいつも通りにコマンドを打てば依存しているパッケージはすべて.cabal-sandbox配下にインストールされ、グローバルあるいはユーザレベルのパッケージデータベースを壊すことはなくなる"
  • 詳解bytestring - maoeのブログ

    というタイトルでbytestringパッケージの包括的ガイドを書こうと思ったけど、まさにそんな内容のスライドをbytestringのBuilderを書いた人が公開していたのを見つけてしまったので、是非そちらを見て欲しい。 A guided tour through the bytestring library 以上、Haskell Advent Calender 2013 22日目の記事でした。 と、これで終わらせてしまってはさすがに良くないので、今回は上のスライドが作られた時点から加えられた主な変更を二つ紹介する。これらの変更は最新のリリース版GHCにバンドルされているbytestringパッケージにはまだ含まれていないので、利用したい場合は適宜cabalファイルにバージョン指定する必要がある。 ShortByteString ShortByteStringはByteStringから使え

    詳解bytestring - maoeのブログ
    sirocco
    sirocco 2013/12/24
    ByteStringから使えるAPIを大幅に制限することで、メモリ効率を高めたデータ構造であるShortByteStringの紹介。APIは8つだけ。toShort,fromShort,pack,unpack,empty,null,length,index
  • GREEのCUFPでのHaskell事例紹介を見た - maoeのブログ

    社内Haskellチュートリアルのススメ | GREE Engineers' Blogという記事からたどって、GREEの中の人がCUFPでHaskellの事例紹介をした動画を見た。 CUFP 2013: Yasuaki Takebe: A Mobile Gaming Platform Case Study スライドはCommon Pitfalls of Functional Programming and How to Avoid Them: A Mobile Gaming Platform Case Study (PDF)。 GREEでは 内製のKVSデータベースの管理 画像サーバのフロントエンド みたいな用途でHaskellを使っているらしい。 プレゼンは(タイトルではFunctional Programmingとあるけど、実際のところは)Haskellでよくある落とし穴を紹介して、そ

    GREEのCUFPでのHaskell事例紹介を見た - maoeのブログ
    sirocco
    sirocco 2013/12/12
    GREEの中の人がCUFPでHaskellの事例紹介をした動画。その中で紹介している、遅延評価によるスペースリーク、非同期例外による競合状態、外部ライブラリの変更に追従できなかったために起こる不具合等の対策について。
  • 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のブログ
  • undefinedの代わりに$notImplementedを使おう - maoeのブログ

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

    undefinedの代わりに$notImplementedを使おう - maoeのブログ
  • 標準入力をブラウザでtail -fできるhtmlcatをHaskellで書いた - maoeのブログ

    GNU screen 使っているとはいえ開発中に諸々のログを流しておくのにウィンドウ使うのに慣れてなくて、タブ開きまくるならやっぱりブラウザを使いたいってことで、標準入力をブラウザに出してくれるツールを書きました。 標準入力をブラウザで tail -f できる htmlcat というのを書いた - NaN days - subtech というのを動かしてみたかったのですが、Perlの環境整備がうまくいかなかったので、Haskellで書いてみました。コードは短いのでここに貼っておきます。 maoe/htmlcat · GitHub {-# LANGUAGE ScopedTypeVariables, QuasiQuotes, OverloadedStrings, RecordWildCards, DeriveDataTypeable #-} module Main where import C

    標準入力をブラウザでtail -fできるhtmlcatをHaskellで書いた - maoeのブログ
  • 1