あどけない話

Internet technologies

2012-06-01から1ヶ月間の記事一覧

String vs ByteString vs Text (その1)

文字列っぽいライブラリの使い方に関するメモ。後でまとめるため。コーディングの方法は、(ViewPatternを使わないとして)こんな風に変わる。ByteString も Text も IsString のインスタンスなので、OverloadedStrings を指定すると、文字列リテラルが使える…

Ubuntu 12.04 server(x86_64) に Haskell Platform をインストールする

僕の場合、/ghc-7.4.1 にインストールするので、以下のようにディレクトリを作る。 % sudo mkdir /ghc-7.4.1 % sudo chown 自分のアカウント名 /ghc-7.4.1 GHC に必要なパッケージをインストールする。64ビット環境で libgmp3-dev を入れるとはまるので、lib…

Haskell でのデバッグ

「純粋関数型言語はデバッグしにくい。だって純粋な関数で printf デバッグできないから」とつぶやいている人をよく見かけます。これまで放置してきましたが、リツイートが50を超えたので、Haskellでのデバッグについて書きます。例外処理と同じように、Hask…

Haskellでの例外処理(その2)

Haskell での例外処理の続き。今日は例外を投げるよ! throwIO IO の中で、例外を投げるには throwIO を使います。 throwIO :: Exception e => e -> IO a Exception型クラスのインスタンスを渡せばよさそうです。Control.Exceptionのマニュアルを読むと、Exc…

Haskell での例外処理

リツイート数が30を超えたので、Haskell での例外処理について説明します。僕が思うに、Haskell での例外処理が分かりにくいのには、2つ理由があります。 ライブラリの混乱 パラダイムの違い 歴史的経緯により、Prelude にも Control.OldException にも Cont…