我是Perl6的新手,试图弄清楚我在这里做错了什么。问题是一个简单的校验和,它获取csv中每一行的最大值和最小值之间的差异。
它返回的最大值和最小值完全错误。对于csv中的第一行,它将最大值返回为71,将最小值返回为104,这是不正确的。
#!/usr/bin/env perl6
use Text::CSV;
sub checksum {
my $sum = 0;
my @data = csv(in => "input.csv");
for @data -> @value {
$sum += (max @value) - (min @value);
}
say $sum;
}
checksum
sub checksum($in) { [+] (+<<csv :$in).map(*.minmax.bounds.reduce(&[R-])) }; say checksum 'input.csv'
- Christoph