Haskell

遅延評価を活用して線形時間でGoogle Code Jam 2014 Round 1AのB問題を解く

公式の解説で,「遅延評価を使ってもできる」と書いてくれなかったので。 注意:この記事は,Google Code Jam 2014 Round 1AのB問題 Full Binary Tree についてのネタバレを含みます。

リストの速度

こんなに差がでてしまうようです.どこに原因があるのか後で調べます. Prelude> length [(a,b)|a length [1..20000000::Int] 20000000 (0.50 secs, 804777660 bytes)

Haskell で動的計画法を書くための3つの方針

アルゴリズムの代表っぽい存在とも言えるDPですが,Haskellは参照透明なので書きにくいと思われがちです. しかし,実際は,C言語やSTLなしのC++より遥かに簡単に動的計画法が書けます. リストを用いる 最初に知るであろう方法. フィボナッチ数列の第100項…

Haskell用vimファイル

Haskell用vimファイルあれこれをもらってきて使っているうちに,が空気を読めるといいなと考え ftplugin/haskell.vim を改造しました. Vimに馴染みがない人のための手抜き説明: 挿入モード中に, Ctrl-F 前後を見て再インデント Ctrl-T インデントを1段深…

第8回日本情報オリンピック 予選

今年の情報オリンピック予選問題 http://www.ioi-jp.org/joi/2008/2009-yo-prob_and_sol/ をHaskellで解いてみました.簡潔に書けて楽しいです. 1 module Main where import IO main = do input <- getContents let i = map (map read . words) $ lines inp…

セミナー

昨日は家にうちゅう,ome,yos,anojun,necocenを呼んでHaskellセミナーをしました.Haskellではどのように処理を記述するかを一通り教えた後,問題を解いていました.正直,準備不足ですみませんでした.来た人々に,Haskell以外の言語を今後使うとき「Haskell…

モナドって

昨日は,いいかげんにモナドが何かをちゃんと理解したかったので,wikibooksを読んでいました. http://en.wikibooks.org/wiki/Haskell/Understanding_monads かなり理解が進んだように思えます. ホワイトボードを使ってyosと議論しながらだったからという…