- break - rangeEx にある同名 (ただし過去分詞) なヤツは意味が違うよにぇ. Prelude に対応するものがないけれど rangeEx のヤツのセマンティスクに Prelude 風の名前つけるとしたら takeUnless?
- concat - lvalueness についてかなり複雑なこと意識する必要があるけれど一応実装済み
- concatMap - これ concat を高階化して map (transformed) して concat で達成できるけれど,頻出パタンとして1つの関数に昇格されたのかしらね
- cycle - 使いどころがわかんね
- drop
- dropWhile
- enumFrom - 無限遅延な counting だあね
- enumFromThen - これ関数にまで引き上げるようなパタンなのかな?自分としては counting + transformed な形で直交化したままで十分用が済む感覚なんだけれど
- enumFromThenTo - 上に同じ
- enumFromTo - counting として実装済み
- filter - 実装済み
- init - これ要るの?高階な形で何かに使うのかしらん
- iterate - 前から実装しよう実装しようと思っていたけれど,名前が決まらなくて放棄してたヤツ. Haskell の Prelude から名前引っ張ってくるってのは案外お手軽だよにぇ.「naming の rationale は?」「Haskell の Prelude パクリました」
- lines - これより汎用な形で実装済み
- map - 実装済み
- mapM - えー,あー,んーと…….たとえば Maybe もにゃどの場合,全部の map が成功した list が帰ってくる,もしくは1個でも失敗しちゃったら即座に失敗ちゃったテヘ☆,が帰ってくる感じ?よぐわがんね
- repeat - 無限な replicate
- replicate - 実装済み
- reverse - 実装済み
- scanl - これ何に使うの?1個だけ面白い使い道はすぐ思いつくけれど
namespace fs = boost::filesystem;
std::string dirs[3] = { "foo", "bar", "baz" };
range::scanned_l( _1 / _2, fs::path( "/" ), dirs ); // -> { "/", "/foo", "/foo/bar", "/foo/bar/baz" }