2011-03-29から1日間の記事一覧

Immutable な片方向リスト

C++

書いてみました。GCC 4.5.2 以降 (-std=c++0x) 専用です。 https://gist.github.com/891955 標準の sequence container に似せてありますが、次の点で大きく異なります。 要素は変更できない insert, erase, clear などの操作を行うと、リスト自身は変更され…

foldr を書く

C++

foldr とは次のような関数です。 foldr :: (a -> b -> b) -> b -> [a] -> b foldr f z [] = z foldr f z (x:xs) = f x (foldr f z xs) これを C++ で書いてみます (foldr' を書きます)。 仕様は accumulate のものを copy and paste (+ modify) して以下のよ…