Cradle

scanl で作る自然対数への (無限) 遅延リスト in C++

scanl 相当を実装したので適当に遊んでみるテスト. http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/cradle/cradle/libs/range/test/integration/lazy_list_to_exp_utf.cpp?content-type=text%2Fplain MSVC7.1, 8.0, GCC4.0.x, 4.1.x でテスト済…

Pipable Function 導入しよう,そうしよう

よし,決めた. Range View を Pipable Function として汎化する設計は極めて魅力 Range View と object generator の2足のわらじを履かせるのは責任の分離云々から見てまずい.っていうか view::sort() で良いじゃん. という理由の下に, Pipable Function…

iterating_range

みょみょみょ.あくまで自分向けのメモな段階でのドキュメント. http://cradle.sourceforge.jp/doc/range/iterating.html 一応,暫定で仕上げた take_while と組み合わせて, http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/*checkout*/cradle/cradle/libs…

Cradle ぷろじぇくと

っていうかちゃんと書くの忘れていたような気がしますが, Cradle というプロジェクトを sourceforge.jp に立てています.完全に自分の遊び場と化しています.えぇんかな,こういう使い方.いや,遊び場にするつもりで立てたわけじゃないけれど. cvs -d :ps…

簡易 lambda 表記のための実装

っていうことでなんか思い立ったが吉日,半日ぐらいかけて,既存の関数オブジェクトに対して bind 不要の部分引数束縛・関数合成の構文を可能にするアダプタを書いてみました的な. http://d.hatena.ne.jp/Cryolite/20050516#p1 を (本人的には) 劇的に改良…

今日の目標構文

っていうか,自分が何か趣味で C++ のコンポーネントを書くときは,何かしらのタスクに対して,「それをどういう構文で書きたいか」というモチベーションの下で考えながら書き始めるという,本末転倒の極みな傾向があるというのを念頭においていただいた上で…

れんじのじっぷ

複数の range が与えられたときに,それら range の対応する要素同士を tuple とした新たな1つの range に見せる range adaptor,よ〜するに boost::zip_iterator の range 版というか,関数プログラミングな文脈におけるいわゆる zip,が前から欲しかったの…

range::transformed + cradle::lexical_cast + range::delimited + range::jointed

とりあえず,なんか以下のコード片みたいにいろんな Range Adaptor を組み合わせて面白いことできないかな〜的なことを志向する感じで. char const *ans = "0, 1, 2, 3, 4, 5, 6, 7, 8, 9"; assert( range::equal( range::counting( 0, 10 ) // 0, 1, 2, ..…

複数の(異なり得る)型に対して効率的かつ安全な共通の戻り値型を計算する

複数の(異なるかも知れない)型のオブジェクトが単一の関数から返される場合を想定する. template< class T, class U > typename cradle::common_result< T const &, U const & >::type f( T const &t, U const &u, bool b ) { if( b ){ return t; } retur…