Schwartzian Transform
ひさしぶりにPlaggerを使ってみる。
Plagger::Feed.pmにあるエントリのソートを行うメソッドは、
sub sort_entries { my $self = shift; # xxx reverse chron only, using Schwartzian transform my @entries = map { $_->[1] } sort { $b->[0] <=> $a->[0] } map { [ $_->date || DateTime->from_epoch(epoch => 0), $_ ] } $self->entries; $self->{entries} = \@entries; }
このmap、sort、mapのパターンってたまに見かけるのだが、Schwartzian transformって何?
以下の説明が簡潔。
http://unyun.dyndns.org/mad-p/perl/benkyou/199909/mgp00039.html