前段时间有人问我一个“奇怪”的问题,我将如何map
使用grep
. 今天我试着去做,结果就是这样。我是从 Perl 中挤出所有东西,还是有其他更聪明的 hack?
#!/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);