yunomuのブログ

趣味のこと

Haskell

Haskellで並列処理

あの、関数型言語の特徴としてよく「並列化しやすい」とか挙げられますよね。なんでかっていうのはなんかよくわかんないんだけど、やっぱりその、副作用っていうか、他のスレッドに影響を及ぼすような処理を書きづらいというか、影響を及ぼさない処理を書き…

なんでもアリ

プログラミングコンテストとか苦手なんだよねぇ。 でも「FizzBuzzで一番笑わせた奴が優勝」とか、そういうのならやりたい。なんて言ってたら大学の後輩がこんなのを教えてくれた。IOCCCで出てたFizzBuzz(?)のCode Golf(?)らしい?dev.c #include"/dev/tty" …

Parsecを使って正規表現の代わりにパーサを与えるgrepのようなものを作る

Haskellやるならパーサ作っておかなきゃいけないかなって。ということで試しにIPv4アドレスのパーサと、正規表現の代わりにパーサを与えるgrepのようなものを作ってみようかなと。 完成イメージはこんな感じ。(実際にはこの記事のコードの完成直前に固まり…

HaskellでOSコマンド実行

当たり前の事を当たり前にやりたいよね。ちょっとしたスクリプトを書く時に、OSのコマンドを実行してその結果をgrepしてcutしてとか、そういう事をよくやる。Haskellでやるかどうかっていうのは別として、そういうのってどうやるんだろうと思って。 grepとか…

getLineでファイルを最後まで円満に読む

UNIXっぽいストリームっぽいコマンドが作りたい。 といった時に、入力を「最後まで」読むにはどうしたらいいのという話。何も考えずにcatっぽいのを書くとこうなる。catじゃなくてechoだな。 import System.IO main :: IO () main = do l <- getLine putStrL…

Hoogleをローカルで使う

Haskellのマニュアル検索のHoogleってシステムがある。 http://www.haskell.org/hoogle/ 便利なんだけど、manに慣れた我々としてはコマンドで使いたいじゃない。Erlangもmanっぽいの用意してくれてるし。 ということで、パッケージがありそうなので入れてみ…

Redmineのプロジェクトの並びが気に入らないという話なのにHaskell書いてた

Redmineを使おうと思ってセットアップしてみたんですけど、なんか、プロジェクトのソート順が気に食わないというか。 プロジェクト1, 2, 3があって、そのサブプロジェクトがそれぞれあって、 1. 1-1 1-2 1-3 2. 2-1 2-2 3. 3-1 3-2という風に、当たり前のよ…

GHCをビルドする

その昔、ソフトウェアのインストールというのが一大イベントだった時代があったという。って20年前くらいですけど。 なぜ難しいかというと、今のようにパッケージ管理なんてものは無かったし、そもそもバイナリ配布できるほどいろんなものの規格が統一されて…

Haskellでインタプリタみたいなのを実装する時のBufferModeの事

Haskellはもういいよって言いながらまたHaskellの話。Haskellでdcっぽいのを作ってる時、 Haskellでdcっぽいのを作る その1 - yunomuのラクに生きたい Haskellでdcっぽいのを作る その2 型安全とは - yunomuのラクに生きたい 両方とも最後に「なんかコンパイ…

CentOSにソースからHaskell Platformを入れる

Haskell Platformってyumに無いの?ブログタイトルを「ラクに生きたい」にしたのに、ソースから入れる記事とかHaskellで悩んでる記事ばっか書いてるとなんか裏切ってる気が。いっそGentoo使いになって「苦労を買ってでもやるブログ」とかにしようかというこ…

Haskellでdcっぽいのを作る その2 型安全とは

Haskellでdcっぽいのを作る その1 - yunomuのラクに生きたい これを書いてから、なんか、なんとなく気持ち悪い感じで日々を過ごしていたんですが、 なんていうかアレですよ、「それモナドにしないの?」って、言われているような気がしていて。参考:「モナ…

Haskellでdcっぽいのを作る その1

「Haskellやると彼女ができる」という都市伝説がある。そういえばスタートHaskell第0回参加の時のアンケートで「なぜHaskellを始めたいか」って聞かれて「彼女ができると聞いて」って答えた気がする。そして私はHaskellを勉強しはじめてしまったので、今私に…

Mighttpd2のビルドしようかと思ったけれど

結論から言うとできてません。やたら早く目がさめたので遊んでる。Haskellはもういいよって言ったけど、なんか適当なHaskell実装は一度は見てみたいなぁとは思っていて、Mighttpd2のソースを見てみたら案外量が少なかったのでちょっとやる気が出た。気になる…