haskell

wcコマンドの実装を通してArrowの気持ちを推し量ってみた

"モナドの一般化"なんていう敷居がやたら高いふれこみのArrowをちょろっと調べてみた。 主に、ha-tanさんのサイト(http://d.hatena.ne.jp/ha-tan/20070810/1186744818)と、そこから参照されているページをひととおり読んだ。モナドがわかる人には多分、 Mona…

ポーカーの役判定

http://d.hatena.ne.jp/argius/20080117/1200590510 を見ておもしろそうだなと思ったので書いてみた。そしてどう書く?org(http://ja.doukaku.org/121/)にも久し振りの投稿。haskellではデータ構造が簡単に定義できるので、これくらいでも使いたくなる。コー…

もなもなモナド ReaderモナドとWriterモナドの合成

モナドの合成はさっぱりわからないままだったので、試しにReaderモナドとWriterモナドの合成をやってみた。リーフは数値、ブランチにはラベルがついてる木構造データを対象に、 木構造データのリーフの合計を求める関数 さらに、Writerモナドを使って足した…

アルファベットの繰り上がり

(http://d.hatena.ne.jp/ha-tan/20070715/1184447837 経由) 書いてみた。「どう書くorg(http://ja.doukaku.org/)」も気になっていたのでついでに初投稿。お題はこれ Excelの桁表示は 1桁目はA、2桁目はB、以下C、D、 E…とすすみ、Zの次はAA AB AC…と続きます…

「新しいプログラミング言語を習得する15の方法」をやってみようとしたら…

プログラミング言語を習得する時にやってみるといい15の課題を紹介しているところがあったで、haskellでやってみようかなとチラリと思ったが、 1. 無限ループ内に1,2,3,...を出力させ、このループを特定のキー入力で止める。 http://d.hatena.ne.jp/kajidai/…

haskellにはまだまだ未知の概念がいっぱい転がっている

http://haskell.g.hatena.ne.jp/jmk/20061206/1165380658 にのってるhaskellコードをざっと眺めたら、働きのよくわかんない型クラスがいっぱいあって、嬉しいやら哀しいやら。モナドがどうこういうのは入口にすぎないんだな。 Javaの膨大なクラスライブラリ…

仕事でhaskellを使いだしてみたよ

ついに仕事(に使う予定)のツールをhaskellで書きだしてみた。その前まではrubyで書いてたツールのリライト+拡張。ま、(コード自体は)僕しか見なくていいからこういうことができるんだけども。 やっぱ静的に型が付くと安心感あるなー。でもって、静的といえど…

ふつける勉強会 終了

http://haskell.g.hatena.ne.jp/wangGMS/20060930/p1 にて、13章を無理矢理終了。14章はやらないで、ふつける勉強会自体これで終了。 勉強会というはメタ勉強会になってた。以下メモ。 なんとこの本はパーサコンビネータの解説本だったのだ! ZZガンダムでい…

意味的にはexhaustiveなnon-exhaustive パターンマッチ

ReaderTは投げっぱなしで勉強会終了。モナドの合成はまだよくわからない。 で、気になったところが一点。p.312のfillTemplate関数のwhere節の中のfill関数の実装で、"break (== '$') tmpl"の結果を受けるパターンマッチの後半が"(s,cont)"になっているのは何…

ふつける勉強会

いよいよ第三部。Wikiの実装編。結局ざっくりしたまとめにしかなってないけど、WikiエンジンLazyLinesの概要を書いた(http://haskell.g.hatena.ne.jp/sshi/20060923/p1)。ひととおりソースを眺めてみると、exportされてるくせに使われてない関数があったりし…

モナドの実行順

http://d.hatena.ne.jp/sshi/20060903/p3 勉強会で出た話題を書き散らしたら、いろんな人からトラックバックを貰えて嬉しい限りでありますが、今余裕がないのでちゃんと反応できてません。ごめんなさい。 結論としては、モナドの仕組み自体は実行順を規定し…

ふつける勉強会 10回目

http://haskell.g.hatena.ne.jp/to2y/20060903 今回はついにモナド。ボリュームが多いので、章を二週に分割することに。今日はMaybeまで。今日のポイントは、「モナドの実行順序は何によって規定されているのだろうか?」というもの。 モナドのミソはbindし…

ふつける勉強会

http://haskell.g.hatena.ne.jp/wangGMS/20060827/p1 今日は、haskellのモジュールの話。前回との密度の差が激しすぎ。そして多分次回のモナドの話との差も激しい。 勉強会のレジュメへの目次もつくってみた(http://haskell.g.hatena.ne.jp/sshi/99990101)。…

べんきょおかい

9章の分を書いた(http://haskell.g.hatena.ne.jp/sshi/20060805/p1)。今回つらかった…。 haskellの型システムの根幹である部分を一章でまとめるのはいくらなんでも無理な気がする。割り切ってるんだろうけども。これはどうなんだろうか…

グラフ簡約の謎 (「ふつける」勉強会 より)

今日は趣向を変えてオフラインで「遅延評価」の章。 一番の収穫は、機動戦士ガンダム0079カードビルダー(http://gundam-cardbuilder.com/index_c.html)情報だったりする気もしないでもないが、「グラフ簡約」のもう少し詳細な仕組みは気になるところ。グラフ…

read' :: (Read a) => String -> IO (Maybe a)

数日前(http://d.hatena.ne.jp/sshi/20060630/p2)のread'の続き。IO (Maybe a)を返すread'を作ってみた。エラーを吐く代わりにNothingを返す、がIOモナドの中だけでしか使えないので注意。 readが吐くエラーを補足できないよー、あきらめたよー。といってい…

read' :: String -> Maybe a

Maybe aを返すread'を作ってみた。エラーを吐く代わりにNothingを返すreadのバリエーション。 発端はHaskell学習中の某Tくんが書いた、数値な文字列を数字に変換するコード。結局は文字列をreadに食わせていたのだが、readは文字が解析できない場合は問答無…

ふつける勉強会 第2回

http://haskell.g.hatena.ne.jp/sshi/20060612/p1 終了。驚愕のモデリング話も聞きつつ2時間くらいで終了。

Haskellの流行りはどこからきたの?

そうだそうだ。忘れないうちにメモ。 最近の日本におけるhaskellの流行りは、アカデミックな人達しか知らなかった状態から、モナディウスの登場でゲーム実装の実例が示された上にちょっとだけ知ってる人が増えて、さらにpugsの登場(とAudreyの煽り)によってP…

オンライン勉強会

http://haskell.g.hatena.ne.jp/sshi/20060611/p1 第一回終了。ゲドやナルニアやレントの話も終了。

もなもなモナド 番外編

ちらっと見かけたhaskell学習中の方のモナドに対する感想があまりに素晴しく見えたので引用。 Unixがコマンドをパイプでつないで、複数のプロセスがストリームを介して連携して動いているようにもみえるし、 ドミノをたくさん立て、シーソーや滑り台、水が一…

「ふつける」ざっと読んだよ

勢いで最後まで読んだ。 書き方はとても丁寧なので、取りあげている題材の実装の意味は理解できると思う。が、説明の割り切りがあっさりしすぎていて少し物足りない。特にモナドのサンプルが圧倒的に少ない。 第三部では、ソースの中にIOモナドとかEitherと…

オンライン勉強会に向けて

で、この本に従ったオンライン勉強会はどうするかな。 1章は読んでおくとして、一回に章1つぐらいでしょうか。 #問題は章末のみなので、問題中心というよりは、分からないことろを確認する #リモートでのディスカッションをスムーズにするためにはレジュメ…

ふつケル 到着

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 314回この商品を含むブログ (320件) を見る「ふつう…

haskellでSmalltalk実装

http://d.hatena.ne.jp/carver/20060511#p2 CGIKitの作者だったsuzukiさんが、いつの間にやらhaskellでのSmalltalk実装をはじめているのを発見。id:carverではてなダイアリに書いている。pythonかと思ったら今度はhaskellか。 でも、いきなり言語実装はじめ…

haskellリングのロゴ

あ。haskellリング(http://haskell.ring.hatena.ne.jp/)にちゃんとロゴがついてる。えらい。これは本家のやつですね。貼り付けとこ。 主宰者のhaskoさんて中の人は関数型言語界隈の人だったりするのかな。

haskellリングに参加

http://d.hatena.ne.jp/hasko/20060521/1148201200 にて、haskellリングができたことを知ったので、参加してみた。 haskellカテゴリだけに絞ったURLを登録したつもりなんだけど、リングの「注目エントリー」には関係ないやつまで表示されちゃうな。アンテナ…

ふつうのHaskellプログラミング

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 314回この商品を含むブログ (320件) を見る忘れない…

parsecすげ。

http://www.lab2.kuis.kyoto-u.ac.jp/~hanatani/tmp/Parsec.html parsec強力すぎる。あまりに強力なので、徹夜して仕事の足しになるようなことをしてしまった。おかしいな。こんなはずでは。 ねむい。Rubyにもこういうライブラリが欲しいなあ。重くなるだけ…

もなもなErrorモナド

モナドの短めのサンプルコードを自力で書いてみる「もなもな」シリーズ第二回目、今回はErrorモナド(http://www.sampou.org/haskell/a-a-monads/html/errormonad.html)。 Errorモナドは、いわゆる例外を扱うモナドで、Exceptionモナドともいうらしい。実態は…