2011-11-01から1ヶ月間の記事一覧

Haskell で RAII 的な処理を行うモナドを作ってみた

ふと Haskell で RAII が行いたくなったので,モナドで実装してみました: module RAII ( RAII(), unsafeExtractRAII, unextractRAII, runRAII, scoped, unsafeReleaseRAII', unsafeReleaseRAII, wrapRAII, liftIO, onDisposed, disposedWith, disposedWith_…

GCC Git Mirror における weekly snapshot の ID ( 20111122 〜 20111126 )

リポジトリ: http://gcc.gnu.org/git/?p=gcc.git gcc-4.4-20111122 1cdf085bf51e4c39a129a9b780839147b84493c7 gcc-4.5-20111124 c0c21682436a94e724ddb2789c4e1e3e67579ee7 gcc-4.6-20111125 901b76e61209c731376289788ca7f7955ef04b5b gcc-4.7-20111126 f…

GCC Git Mirror における weekly snapshot の ID ( 20111115 〜 20111119 )

リポジトリ: http://gcc.gnu.org/git/?p=gcc.git gcc-4.4-20111115 8e62f872e362fd920888465c2b90acd13c3d34fd gcc-4.5-20111117 b0d95cca51b4022ef27ef74d7a393b06425fff89 gcc-4.6-20111118 17e7670162d253c027c37070017804c5a097f4ff gcc-4.7-20111119 9…

do 式中の無名再帰でループを回す

do 式の中でループを書く場合,イチイチ let を使うのは面倒だなぁ, と常々考えていたのですが,よく考えたら これ, fix を使えば済む話ですね: import Data.IORef import Data.Function main = do -- 無引数無名再帰 a_ref <- newIORef ( 0 :: Int ) fix…

GCC-4.7 に Alias declarations (Template aliases) が実装されていた

いつの間にか GCC-4.7 に Alias declarations (Template aliases) が実装されていたようです: http://gcc.gnu.org/projects/cxx0x.html これにより, // my_vector<T> を std::vector<T, my_allocator<T>> の代わりに使える // 関数テンプレート等で型推論させられない弱点はある</t,></t>…

Twitter で竹内関数が話題に登っていたので Haskell で関数適用回数を数えてみた

内容はタイトル通り. 折角なので正格評価と遅延評価の両方でカウント. import Data.IORef import System.IO.Unsafe -- グローバル変数 -- 本題ではないので詳細は省略 resetCount :: IO () incCount :: IO () readCount :: IO Int ( resetCount, incCount,…

GCC Git Mirror における weekly snapshot の ID ( 20111108 〜 20111112 )

リポジトリ: http://gcc.gnu.org/git/?p=gcc.git gcc-4.4-20111108 e65e4284e58cd1e0e65a50d0eb004468d5a60ca4 gcc-4.5-20111110 0320620a6140982c9eecd79b2323347bb5b1b986 gcc-4.6-20111111 f73fb67d238682810f0e8feba86ec63a1b059704 gcc-4.7-20111112 8…

GCC Git Mirror における weekly snapshot の ID ( 20111101 〜 20111105 )

リポジトリ: http://gcc.gnu.org/git/?p=gcc.git gcc-4.4-20111101 be951e0add18db5244bea05d22790585fb9e6bee gcc-4.5-20111103 17217c00cd3ffcf9f22ce2fbda88ea6c31ce7fb2 gcc-4.6-20111104 77874afb144079f556776dd145bac8bcb8cc2b62 gcc-4.7-20111105 9…

名前空間内で定義された user-defined literals を使う

今まで user-defined literals では名前空間を使えないと思い込んでいましたが, 規格を読むと,名前検索は普通の関数と同様に行われるようなので,普通に 名前空間内で定義し,その名前空間内で特に何も考えずに使用することも可能だし, 違う名前空間であ…