2011-11-01から1ヶ月間の記事一覧
ふと Haskell で RAII が行いたくなったので,モナドで実装してみました: module RAII ( RAII(), unsafeExtractRAII, unextractRAII, runRAII, scoped, unsafeReleaseRAII', unsafeReleaseRAII, wrapRAII, liftIO, onDisposed, disposedWith, disposedWith_…
リポジトリ: 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…
リポジトリ: 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 式の中でループを書く場合,イチイチ let を使うのは面倒だなぁ, と常々考えていたのですが,よく考えたら これ, fix を使えば済む話ですね: import Data.IORef import Data.Function main = do -- 無引数無名再帰 a_ref <- newIORef ( 0 :: Int ) fix…
いつの間にか 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>…
内容はタイトル通り. 折角なので正格評価と遅延評価の両方でカウント. import Data.IORef import System.IO.Unsafe -- グローバル変数 -- 本題ではないので詳細は省略 resetCount :: IO () incCount :: IO () readCount :: IO Int ( resetCount, incCount,…
リポジトリ: 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…
リポジトリ: 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 では名前空間を使えないと思い込んでいましたが, 規格を読むと,名前検索は普通の関数と同様に行われるようなので,普通に 名前空間内で定義し,その名前空間内で特に何も考えずに使用することも可能だし, 違う名前空間であ…