前段时间,我被问到“奇怪”的问题,我将如何实施map
与grep
。 今天我试图做到这一点,这是什么出来。我是否挤压了Perl的所有内容,或者还有其他更聪明的黑客?在Perl中,如何使用grep实现地图?
#!/usr/bin/env perl
use strict;
use warnings;
use 5.010;
sub my_map(&@) {
grep { $_= $_[0]->($_) } @_[1..$#_];
}
my @arr = (1,2,3,4);
#list context
say (my_map sub {$_+1}, @arr);
#scalar context
say "".my_map {$_+1} @arr;
say "the array from outside: @arr";
say "builtin map:", (map {$_+1} @arr);
说实话,我现在不知道,就像你说的,可能是。我从来没有想过为了好玩而做任何两个练习。问题的关键很可能是看看我对Perl有多熟悉。 –