表紙 編集 差分 一覧 最近 短縮 付箋 ログイン 凍結中

/Diary/2009/11/15 の差分

N2Wiki > Diary > 2009 > 11 > 15
ページに戻る
- #?diaryanchor -e SPLイテレータラッパ&[PHP][Sloth]
+ #?diaryanchor SPLイテレータラッパ&[PHP][Sloth]
  |<
  拙者、ちかごろPHPでコードを書く機会が多いでござる。
  このPHP、なんというか、関数のインターフェース的に個人的に[[残念な仕様|http://rainyday.blog.so-net.ne.jp/2007-10-14-1]]が多いと思っていたでござる。
  そんな折、[[SPLのイテレータ|http://php.net/manual/ja/spl.iterators.php]]はなかなか便利そうではあるが、もっと関数的に使いたいと思ったでござるよ。
  そこで拙者、SPLイテレータのラッパを書くことにしたでござる。
  ラッパを書くにあたってFollow,LazyMapなど[[anatoo氏|http://d.hatena.ne.jp/anatoo/]]の[[一連のエントリ|http://d.hatena.ne.jp/anatoo/archive?word=PHP]]を参考にしたでござる。多謝。ニンニン。
  
  [[http://github.com/no22/Sloth]]
  
  Sloth/AutoLoad.php をrequireすると使えるようになるでござる。PHP5.2以降対応。
  ではお約束のfibonacci
  >|
- $fibs = iter(array(1,1), fn('array($e[1],$e[0]+$e[1])'))->map(fn('$e[0]'));
- $fibs->take(40)->each(fn('print("$x,")'));
+ $fibs=iter(array(1,1),fn('array($e[1],$e[0]+$e[1])'))->map(fn('$e[0]'));
+ $fibs->take(15)->each(fn('print("$x,")'));
  |<
  >|
  1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,
  |<
  遅延リスト風に使えるでござる。全く趣味の産物ナリよ。
  GitHubに置いたので自由に改変して良いナリ。
  >|
  #enddiary
»