import all tests from Fun
[p5sagit/Function-Parameters.git] / t / foreign / Fun / recursion.t
CommitLineData
98478aff 1#!perl
2use strict;
3use warnings FATAL => 'all';
4use Test::More;
5
6BEGIN {
7 if (!eval { require 5.016; 1 }) {
8 plan skip_all => "This test requires 5.16";
9 }
10}
11
12use 5.016;
13
14use Function::Parameters;
15
16fun fact ($n) {
17 if ($n < 2) {
18 return 1;
19 }
20 return $n * __SUB__->($n - 1);
21}
22
23is(fact(5), 120);
24
25is(fun ($n = 8) { $n < 2 ? 1 : $n * __SUB__->($n - 1) }->(), 40320);
26
27fun fact2 ($n) {
28 if ($n < 2) {
29 return 1;
30 }
31 return $n * fact2($n - 1);
32}
33
34is(fact2(5), 120);
35
36done_testing;