Initial commit

This commit is contained in:
Folkert Kevelam 2025-02-09 15:30:20 +01:00
commit fdbd95ed32

67
AoC/2024/perl/test.pl Normal file
View File

@ -0,0 +1,67 @@
#!/usr/bin/perl
use v5.40;
sub sum( @numbers ) {
my $sum_num = 0;
foreach my $num (@numbers) {
$sum_num = $sum_num + $num
}
return $sum_num
}
sub fold( $func, $initial, @list ) {
my $output = $initial;
foreach my $item (@list) {
$output = $func->($output, $item);
}
return $output
}
sub mmap( $func, @list ) {
my @output;
foreach my $item (@list) {
my $result = $func->($item);
push(@output, $result);
}
return @output;
}
sub map2( $func, @list1, @list2 ) {
my @output;
my $list1_length = $#list1;
my $list2_length = $#list2;
my $length = $list1_length;
if($list2_length < $length) {
$length = $list2_length;
}
for(my $i = 0; $i < $length; $i++) {
push(@output, $func->(@list1[$i], @list2[$i]));
}
return @output;
}
sub sum_op( $a, $b ) {
return $a + $b
}
sub sum_op_2( $a ) {
return $a * 2;
}
sub diff_op( $a, $b ) {
return $a - $b;
}
my @test = (1,2,3,4,5,6,7,8,9,10);
print(fold(\&sum_op, 0, @test));
print(mmap(\&sum_op_2, @test));
print(map2(\&diff_op, @test, @test));