summaryrefslogtreecommitdiffstats
path: root/t/recursion.t
blob: 81a4cc4f4e6ca7e5639b35a12de9ef6887b5e5a4 (plain) (blame)
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
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env perl
use strict;
use warnings;
use Test::More;

BEGIN {
    if (!eval { require 5.016; 1 }) {
        plan skip_all => "This test requires 5.16";
    }
}

use 5.016;

use Fun;

fun fact ($n) {
    if ($n < 2) {
        return 1;
    }
    return $n * __SUB__->($n - 1);
}

is(fact(5), 120);

is(fun ($n = 8) { $n < 2 ? 1 : $n * __SUB__->($n - 1) }->(), 40320);

fun fact2 ($n) {
    if ($n < 2) {
        return 1;
    }
    return $n * fact2($n - 1);
}

is(fact2(5), 120);

done_testing;