Moose::Autobox::Code(3) User Contributed Perl Documentation Moose::Autobox::Code(3)NAME
Moose::Autobox::Code - the Code role
SYNOPOSIS
use Moose::Autobox;
my $adder = sub { $_[0] + $_[1] };
my $add_2 = $adder->curry(2);
$add_2->(2); # returns 4
# create a recursive subroutine
# using the Y combinator
*factorial = sub {
my $f = shift;
sub {
my $n = shift;
return 1 if $n < 2;
return $n * $f->($n - 1);
}
}->y;
factorial(10) # returns 3628800
DESCRIPTION
This is a role to describe operations on the Code type.
METHODS
curry (@values)
rcurry (@values)
conjoin (&sub)
disjoin (&sub)
compose (@subs)
This will take a list of @subs and compose them all into a single subroutine where the output of one sub will be the input of another.
y This implements the Y combinator.
u This implements the U combinator.
meta
SEE ALSO
<http://en.wikipedia.org/wiki/Fixed_point_combinator>
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/20469 <http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/20469>
BUGS
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to
cpan-RT.
AUTHOR
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE
Copyright 2006-2008 by Infinity Interactive, Inc.
<http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.16.2 2012-08-29 Moose::Autobox::Code(3)
Check Out this Related Man Page
Moose::Autobox::Array(3) User Contributed Perl Documentation Moose::Autobox::Array(3)NAME
Moose::Autobox::Array - the Array role
SYNOPOSIS
use Moose::Autobox;
[ 1..5 ]->isa('ARRAY'); # true
[ a..z ]->does('Moose::Autobox::Array'); # true
[ 0..2 ]->does('Moose::Autobox::List'); # true
print "Squares: " . [ 1 .. 10 ]->map(sub { $_ * $_ })->join(', ');
print [ 1, 'number' ]->sprintf('%d is the loneliest %s');
print ([ 1 .. 5 ]->any == 3) ? 'true' : 'false'; # prints 'true'
DESCRIPTION
This is a role to describe operations on the Array type.
METHODS
pop
push ($value)
shift
unshift ($value)
delete ($index)
sprintf ($format_string)
slice (@indices)
flatten
flatten_deep ($depth)
first
last
Indexed implementation
at ($index)
put ($index, $value)
exists ($index)
keys
values
kv
each
each_key
each_value
each_n_values ($n, $callback)
List implementation
head
tail
join (?$seperator)
length
map (&block)
grep (&block)
Note that, in both the above, $_ is in scope within the code block, as well as being passed as $_[0]. As per CORE::map and CORE::grep,
$_ is an alias to the list value, so can be used to to modify the list, viz:
use Moose::Autobox;
my $foo = [1, 2, 3];
$foo->map( sub {$_++} );
print $foo->dump;
yields
$VAR1 = [
2,
3,
4
];
reverse
sort (?&block)
Junctions
all
any
none
one
meta
print
say
BUGS
All complex software has bugs lurking in it, and this module is no exception. If you find a bug please either email me, or add the bug to
cpan-RT.
AUTHOR
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE
Copyright 2006-2008 by Infinity Interactive, Inc.
<http://www.iinteractive.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.16.2 2012-08-29 Moose::Autobox::Array(3)