Hatena::Groupdann

dann's blog このページをアンテナに追加 RSSフィード

Fork me on GitHub

2008-06-02

Moose::Autoboxでシュワルツ変換

| Moose::Autoboxでシュワルツ変換 - dann's blog を含むブックマーク はてなブックマーク - Moose::Autoboxでシュワルツ変換 - dann's blog Moose::Autoboxでシュワルツ変換 - dann's blog のブックマークコメント

#!/usr/bin/env perl
use strict;
use warnings;
use Moose::Autobox;
use Perl6::Say;

my $a = [ 
    '1993,Richard E. Stearns',
    '1994,Edward Feigenbaum',
    '1991,Robin Milner',
    '1990,Fernando J. Corbato',
    '1996,Amir Pnueli',
    '1997,Douglas Engelbart',
    '1998,James Gray',
    '1993,Juris Hartmanis',
    '1992,Butler W. Lampson',
    '1994,Raj Reddy',
    '1995,Manuel Blum',
];

say $a->map( sub { [ split /,/ ] } ) 
      ->sort( sub { my ( $a, $b ) = @_; $b->[0] <=> $a->[0] || $a->[1] cmp $b->[1];})
      ->map( sub { join ',', @$_ } ) 
      ->dump;

普通にシュワルツ変換を書くと、下から上に読まないといけないのが少し気持ち悪いですが、これだと上から下に読めるのでプログラムが自然に読めていいですね。

moooooooooooooooooooooooose !