2008年 05月 18日

今はしっかり一本開発してるプロダクトないなぁ…… かなりいろんなことがタイミングの問題で保留になってる。

なんか、背中から落ちて、杭みたいなのがたくさんあるところに落ちて死ぬ光景が最近よく瞼に写るんだけど、これはどっからきてるの

List::Enumerator

http://github.com/cho45/list-enumerator/tree/master

昨日 YAPC から帰ってきてからもそもそ作ってたけど妙に疲れた……

やってることは JSEnumerator とだいたい同じで、Moose 使って一部を Role として分離してリストっぽくつかえるやつに適用可能にしてみた、けど、なんかもっといい方法あるのかなぁ。

基本的に全部遅延評価されるので、DBIC の一行ずつとってくるやつと組合せるといいかもしれないけど試してないです。(リストコンテキストで評価した場合一部はリストで返したり、to_a を明示的によぶと ArrayRef 返すようになってたり)

rewind を一応実装してみたのはいいけど、あんまり信用しないほうがいい感じです。結局、クロージャもごもごやる Enumerator をチェインさせたりすると rewind がどうしても実装できないと思う。殆ど場合は問題ないと思うけど……


例によって % 使わない FizzBuzz

use List::Enumerator qw/E/;
 
use Data::Dumper;
sub p ($) { warn Dumper shift }
 
my $fizzbuzz =
  E(1)->countup->zip(
    E("", "", "Fizz")->cycle,
    E("", "", "", "", "Buzz")->cycle
  )->map(sub {
    my ($n, $fizz, $buzz) = @$_;
    $fizz . $buzz || $n;
  });
 
p [ $fizzbuzz->take(20) ];

CPAN http://search.cpan.org/~satoh/List-Enumerator-0.01/lib/List/Enumerator.pm

Moose alias

__PACKAGE__->meta->alias_method("foo", \&bar); と *foo = \&bar; だとタイプ数的に後者使っちゃうなぁ……

ご飯食べてるとやたら憂鬱になるのはなんなんだろう……

どっか遠くにいきたいよお……

なんかこう、日本って狭いなぁ。英語できたらいいんだろうなぁ。でも日常的に英語使わない…… 必要がないと覚えない。

高校2年のとき、町田のデパートのエスカレートでふと思い浮かんだ30歳の自分っていうのがリフレインされる。

個性個性うるさい

LE

my $fib = fibonacci();

is_deeply [ $fib->take(10) ], [
	0, 1, 1, 2, 3, 5, 8, 13, 21, 34
];

is_deeply [ $fib->take(10) ], [
	0, 1, 1, 2, 3, 5, 8, 13, 21, 34
];

にするか

my $fib = fibonacci();

is_deeply [ $fib->take(10) ], [
	0, 1, 1, 2, 3, 5, 8, 13, 21, 34
];

is_deeply [ $fib->take(10) ], [
	55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181
];

にするかで悩む。今は後者だけど、前者のほうがいい気がしてきた (同じように読んでるように見えるんだから同じものをかえすべき)。

前者に全部あわせた