✖
アイデアはもっと、日常的なものだなぁと感じる。アイデア、無限の中から拾いあげてくるもの、生活の中で、それはいつもまわりにあるけれど、気付くことが、難しい。写真もよく似てる。ゼロからではなくて、いつもまわりにあるものを敏感に感じとる、形にする。でもみんな同じだ。写真だけじゃない。
アイデアはもっと、日常的なものだなぁと感じる。アイデア、無限の中から拾いあげてくるもの、生活の中で、それはいつもまわりにあるけれど、気付くことが、難しい。写真もよく似てる。ゼロからではなくて、いつもまわりにあるものを敏感に感じとる、形にする。でもみんな同じだ。写真だけじゃない。
を暗喩的に解釈する。
昼に少し散歩をする。面白いダイアリを書いている人がいまなにをしているかを想像する。想像で、確かに人間がいることを実感する。
プログラムを書くときには、単に自己表現をしているのではなく、コンパイラが理解できるように書くものです。「これはコンパイラが理解できるだろうか」と絶えず自問しながら書くわけです。同じことは人間が読む文章にも当てはまります。多くの人が読んで理解できるように書く必要があり、そのためにはどういう言い方をすべきかと考え、読者の目にどう見えるか想像する必要があります。どうしたら理解してもらえるかよく考えることです。
またこのヒトカヨーって思って疑いながら (なんかあんまり好きじゃない) 読みはじめたらおもしろかった。
なんかすごい憤りを感じるというか、人間的にその発言ってどうなの、って感じだ……
なんかでるらしい。すごい楽しみだ!
たのしみがふえた。というか今年こそちゃんとライブに行きたい……
靴の見えないところに入っていて、歩くたびにかかとをつっつく石を取り除いた。
ヤクルト吹いた。いまからすげー不安だ\(^o^)/
Ruby での
require "pp"
data = [
{ :name => "foo", :value => 1 },
{ :name => "bar", :value => 2 },
{ :name => "baz", :value => 3 },
]
pp data.inject(0) {|r,i| r + i[:value] }
pp data.inject({}) {|r,i| r.update( i[:name] => i ) }
__END__
6
{"baz"=>{:value=>3, :name=>"baz"},
"foo"=>{:value=>1, :name=>"foo"},
"bar"=>{:value=>2, :name=>"bar"}}use List::Util qw/reduce/;
use Data::Dumper;
sub p ($) { print Dumper shift }
my $data = [
{ name => "foo", value => 1 },
{ name => "bar", value => 2 },
{ name => "baz", value => 3 },
];
p reduce { $a + $b->{value} } 0, @$data;
p reduce { +{ %$a, $b->{name} => $b } } {}, @$data;
__END__
$VAR1 = 6;
$VAR1 = {
'bar' => {
'value' => 2,
'name' => 'bar'
},
'baz' => {
'value' => 3,
'name' => 'baz'
},
'foo' => {
'value' => 1,
'name' => 'foo'
}
};
引数のとりかた的に Perl は初期値の与えかたが自然な感じがする。
慣れるために書いてみる
package List::Enumerator;
use strict;
use warnings;
use base qw/Exporter/;
our @EXPORT = qw/E/;
use Exception::Class ( "StopEnumeration ");
sub E {
List::Enumerator->new(@_);
}
sub new {
my ($class, @args) = @_;
my $self = {};
bless $self, $class;
$self->_init(@args);
$self;
}
sub _init {
my ($self, @args) = @_;
my $i = 0;
$self->_init_with_fun(sub {
$i < @args ? $args[$i++] : StopEnumeration->throw;
});
}
sub _init_with_fun {
my ($self, $fun) = @_;
$self->{fun} = $fun;
}
sub next {
my $self = shift;
$self->{fun}->();
}
sub each {
my ($self, $fun) = @_;
eval {
while (1) {
local $_ = $self->next;
$fun->($_);
}
}; if (my $e = Exception::Class->caught('StopEnumeration')) {
}
}
sub map {
my ($self, $fun) = @_;
my @ret = ();
$self->each(sub {
push @ret, $fun->($_);
});
wantarray ? @ret : List::Enumerator->new(@ret);
}use Data::Dumper;
sub p { print Dumper shift }
use List::Enumerator;
E(1, 2, 3)->each(sub {
p shift;
p $_;
});
p [ E(1, 2, 3)->map(sub { $_ * $_; }) ];
E(1, 2, 3)->map(sub {
$_ * $_;
})->each(sub {
p $_;
});cycle かくまえに眠くなった
もうちょっと経ったら (謎) autobox さわってみよう