skip mymeta files
[gitmo/Moose-Autobox.git] / t / 006_y_combinator.t
CommitLineData
bb5a920e 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
171cd606 6use Test::More tests => 2;
bb5a920e 7use Test::Exception;
8
bb5a920e 9use Moose::Autobox;
10
11# we need a control in the experiment
12sub fact {
13 my $n = shift;
14 return 1 if $n < 2;
15 return $n * fact($n - 1);
16}
17
18*fact2 = sub {
19 my $f = shift;
20 sub {
21 my $n = shift;
22 return 1 if $n < 2;
23 return $n * $f->($n - 1);
24 }
25}->y;
26
27*fact3 = sub {
28 my $f = shift;
29 sub {
30 my $n = shift;
31 return 1 if $n < 2;
32 return $n * ($f->($f))->($n - 1);
33 }
34}->u;
35
36is(fact(10), fact2(10), '... our factorials match');
37is(fact(10), fact3()->(10), '... our factorials match');
38