前段時間,我被問到「奇怪」的問題,我將如何實施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有多熟悉。 –