2007-01-01から1年間の記事一覧

近況とか

12月は一家そろって体調くずしていることが多かったです。ブログに何か書くようなことも取り立ててありませんでした。 そういえばgreenteaさんの本屋さんのエントリは面白かったな。私はリアル本屋さんが好きです。ただのセンチメンタルなんだろうな。 最近…

もなもなモナド ReaderモナドとWriterモナドの合成について

http://d.hatena.ne.jp/sshi/20071130/p1 疑問には答えられてないんですが、lift,liftMはいらないのかな、と。 *Main> :i MonadReader class (Monad m) => MonadReader r m | m -> r where ask :: m r local :: (r -> r) -> m a -> m a -- Defined in Contro…

printfの自作

http://ja.doukaku.org/91/ http://ja.doukaku.org/comment/4423/

文字列の反転(括弧の対応を保存)

http://ja.doukaku.org/70/ http://ja.doukaku.org/comment/4278/ コメント欄が変になっちゃった。すいません。

文字列のセンタリング

http://ja.doukaku.org/87/ http://ja.doukaku.org/comment/4256/

インフルエンザ

インフルエンザの予防接種をうけてきました。

ジブリの森

有給をつかって三鷹のジブリの森にいってきました。こどもは途中で寝ちゃったけど、楽しかったです。 あとチケットも安かったし、何よりスタッフがよく教育されているのな。

水の移しかえパズル

http://ja.doukaku.org/73/ http://ja.doukaku.org/comment/3693/ SICPを(今頃)読みはじめました。実は再入門なんだけど。 で、いきおいScheme(Gauche)を書くことが多いんだけど、改めてHaskellをつかってみると型がどれだけ楽チンか、というかプログラマー…

[haskell][doukaku]ファイル内の重複行削除(後優先)

http://ja.doukaku.org/66/ http://ja.doukaku.org/comment/3348/

まんま

娘が「まんま」という言葉をおぼえたらしい。私が萌え死んだら灰は海にまいて下さい。

ライフゲーム

http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0 http://d.hatena.ne.jp/lamuu/20060825/1156520199 Wikipedia見ててグライダーガンを作ってみたくなったので、ライフゲームをHaskellで作りました。wxHaskellの箇所は…

メモ

http://pc11.2ch.net/test/read.cgi/tech/1174211797/l50 881 名前: デフォルトの名無しさん Mail: sage 投稿日: 2007/09/20(木) 22:42:51 http://web.yl.is.s.u-tokyo.ac.jp/~ganat/memo/aboutHaskell.htmlにある qsort [] = [] qsort (x:xs) = qsort elts_…

仲間はずれの判定

http://ja.doukaku.org/53/ http://ja.doukaku.org/comment/2694/

与えられた文字列でピラミッド

http://ja.doukaku.org/52/ http://ja.doukaku.org/comment/2627/

文字列からの情報抽出

Parsecはいつも使い方を忘れるが、思いだす頃には実装が終っている。 http://ja.doukaku.org/51/ http://ja.doukaku.org/comment/2561/

ビンゴの結果を整形表示

http://ja.doukaku.org/47/ http://ja.doukaku.org/comment/2320/

重複なし乱数

http://ja.doukaku.org/46/ http://ja.doukaku.org/comment/2313

与えた条件を満たす候補

http://ja.doukaku.org/43/ http://ja.doukaku.org/comment/2110/

与えられた数字のケタ数

http://ja.doukaku.org/40/ http://ja.doukaku.org/comment/2071/ あんなんで良かったのかな。

整数の漢数字表記

http://ja.doukaku.org/38/ http://ja.doukaku.org/comment/2055/ プログラマのためのコロシアム,どう書く?orgに参戦することにしました。皆様お手やわらかに。あっ間違えた、じゃアレなんでこれからはテストをちゃんと書こうと思います。どうなるか分かんな…

「僕と牛尾と校庭で」角谷信太郎(2007/08/02 豆ナイト)

http://www.nicovideo.jp/watch/sm781840 弾幕うすいよ。なにやってんの。

A Taste of Haskell

http://conferences.oreillynet.com/presentations/os2007/os_peytonjones.pdf (発表資料のPDF) http://blip.tv/file/324976 (動画 A Taste of Haskell Part I) http://blip.tv/file/325646 (動画 A Taste of Haskell Part II) OSCON2007 Simon Pyton-Jones…

LL魂にいってきた

関係者、発表者、参加者のみなさまおつかれさまでした。ここから下はあえて書く。今年も面白かったんだけど、イベント全体を通じて何だかウケ狙いの発言やプレゼンが多かったな。正直ガッカリしました。 私がLLに期待しているのは、発表者の人達の自分達の言…

議席数をドント方式で

http://ja.doukaku.org/26/ ちょっと無理めかもしれませんが、勉強のために合成モナドを使いました。 import Data.List import Control.Monad.State import Control.Monad.Writer data Vote = V {idx::Int, num::Double, poll::Double} deriving Show type V…

マップの通りぬけ

http://ja.doukaku.org/30/ import Data.Maybe (fromJust) import System (getArgs) import Control.Monad (liftM) type Point = ((Int,Int),Char) data Direction = N | S | W | E deriving (Eq, Show) direction d = fromJust $ lookup d [(N,[E,N,W,S]),(…

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

http://ja.doukaku.org/21/ f = take 100 $ concatMap sequence $ scanl1 (++) $ repeat [['A'..'Z']]

逆順になるアミダくじ

http://ja.doukaku.org/20/ nが11以上になると表示がくずれるYO。あとやたらintersperseしてて見苦しい。 (追記) これ全然ダメだ...またやっちゃった (追追記) 修正した import Data.List amida n = mapM_ print $ tail $ transpose (f ++ [line]) where lin…

アレイのuniqどう書く

http://ja.doukaku.org/16/ (via http://d.hatena.ne.jp/takkan_m/20070711) こんなんじゃダメかね? import Data.Array import Data.List (nub) f arr = let assoc = zip (indices arr) (nub (elems arr)) in array (fst (head assoc), fst (last assoc)) as…

ICPC: Problem A Keitai Message

http://www.deqnotes.net/acmicpc/p0003/ja (via hattanさんとzyxwvさん) みんなやってて楽しそうだったからやりました。Parsecでやっつ系。 import Text.ParserCombinators.Parsec as Parsec key = [cycle ['.',',','!','?',' '], cycle ['a','b','c'], cyc…

コインを減らす払い方

http://ja.doukaku.org/3/ import Data.List (notElem, nub, minimumBy, group) import Control.Monad (filterM, guard) pay 0 = [] pay n | n >= 500 = 500:pay (n - 500) | n >= 100 = 100:pay (n - 100) | n >= 50 = 50 :pay (n - 50) | n >= 10 = 10 :pa…