aboutsummaryrefslogtreecommitdiff
path: root/challenge-235/barroff/raku/ch-2.p6
blob: 17b09830fc4daa62a900b993cf75be40cf5313a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/env raku

use v6.d;

sub duplicate-zeros(@ints --> Positional) {
    my @result = map({ $_ == 0 ?? Slip.new(0, 0) !! $_ }, @ints);
    return @result[0..@ints.elems - 1];
}

#| Run test cases
multi sub MAIN('test') {
    use Test;
    plan 3;

    is duplicate-zeros([1, 0, 2, 3, 0, 4, 5, 0]), (1, 0, 0, 2, 3, 0, 0, 4),
        'works for (1, 0, 2, 3, 0, 4, 5, 0)';
    is duplicate-zeros([1, 2, 3]),                (1, 2, 3),
        'works for (1, 2, 3)';
    is duplicate-zeros([0, 3, 0, 4, 5]),          (0, 0, 3, 0, 0),
        'works for (0, 3, 0, 4, 5)';
}

#| Take user provided list like 1 1 2 2 2 3
multi sub MAIN(*@ints where @ints.elems1) {
    say duplicate-zeros(@ints);
}