2011-10-15から1日間の記事一覧

FibBuzz で fibonacci をメモ化

C++

前回の続き。 Boost.Flyweight を使用してfibonacci をメモ化しました。 これで実行速度が鬼のように早くなった。 [ソース] #include <boost/flyweight.hpp> #include <boost/flyweight/key_value.hpp> #include <boost/flyweight/no_tracking.hpp> #include <boost/phoenix/bind.hpp> #include <boost/phoenix/operator.hpp> #include </boost/phoenix/operator.hpp></boost/phoenix/bind.hpp></boost/flyweight/no_tracking.hpp></boost/flyweight/key_value.hpp></boost/flyweight.hpp>

C++ で FibBuzz

C++

元ネタ:FizzBuzz は時代遅れらしいので FibBuzz はどうでしょう #fibbuzz - cod.note C++ で書いてみた。 [ソース] #include <boost/lambda/lambda.hpp> #include <boost/lambda/bind.hpp> #include <boost/range/irange.hpp> #include <boost/range/algorithm/for_each.hpp> #include <boost/range/adaptor/transformed.hpp> #include </boost/range/adaptor/transformed.hpp></boost/range/algorithm/for_each.hpp></boost/range/irange.hpp></boost/lambda/bind.hpp></boost/lambda/lambda.hpp>

オブジェクト指向と関数型

ちょっと前にTLで見かけたんですが、わたしのイメージはこんな感じ。 [ソース] #include <cmath> #include <iostream> // オブジェクト指向的な書き方 namespace object{ struct vector{ vector() : x(0.0f), y(0.0f), z(0.0f){} vector(float x, float y, float z) : x(x), y</iostream></cmath>…

vim script 力を高める

元ネタ: Hack #236: 短期間でVim script力を向上する - vim-users.jp [ソース] echo eval(join(filter(range(1000), "!(v:val % 3 && v:val % 5)"), "+")) " => 233168 二項演算子であれば、eval と join で foldl をエミュレート出来るので便利ですね。 [参…

clang 3.0 で追加される C++11 の機能

いつの間にか C++ and C++'11 Support in Clang のページレイアウトが変更されていました。 バージョンごとの実装が見やすくなっている…! clang 3.0 で追加される C++11 の機能は以下のとおり。 Non-static data member initializers Alias templates Null …