#!/usr/bin/perl -w
use strict;
use warnings;
sub make_rand {
my $x = 0;
return sub {
return $x++; # not very random
};
}
my $rng = make_rand();
for my $i (1..4) {
my $x = $rng->();
print "$x\n";
}
####
#!/usr/bin/perl -w
use strict;
use warnings;
sub NEXTVAL { $_[0]->() }
sub make_rand {
my $x = 0;
return sub {
return $x++;
};
}
my $rng = make_rand();
for my $i (1..4) {
my $x = NEXTVAL ( $rng );
print "$x\n";
}
####
#!/usr/bin/perl -w
use strict;
use warnings;
sub NEXTVAL { $_[0]->() }
sub Iterator { return $_[0] }
sub make_rand {
my $x = 0;
return sub {
return Iterator sub {
return $x++;
};
}
my $rng = make_rand();
for my $i (1..4) {
my $x = NEXTVAL ( $rng );
print "$x\n";
}
####
#!/usr/bin/perl -w
use strict;
use warnings;
sub NEXTVAL { $_[0]->() }
sub Iterator (&) { return $_[0] }
sub make_rand {
my $x = 0;
return Iterator {
return $x++;
};
}
my $rng = make_rand();
for my $i (1..4) {
my $x = NEXTVAL ( $rng );
print "$x\n";
}