P17 - 将一个列表分成两部分;第一部分的长度是给定的。
作者:David Romano
规范
P17 (*) Split a list into two parts; the length of the first part is given. Do not use any predefined predicates.
示例
> say bisect(<a b c d e f g h i k>, 3).perl (["a", "b", "c"], ["d", "e", "f", "g", "h", "i", "k"])
源代码:P17-unobe.pl
use v6;
my @l = <a b c d e f g h i k>;
sub prob17(@in, $n) {
if @in.end < $n { return @in }
else {
my $beg = [gather { for 0...$n-1 { take @in[$_] } }];
my $end = [gather { for [email protected] { take @in[$_] } }];
return ($beg, $end);
}
}
say @l.perl;
say prob17(@l, 3).perl;
Perl 6 示例