—use
strict;
use
warnings;
my
$PURE
= __PACKAGE__->new([]);
sub
pure {
$PURE
}
sub
build {
my
(
$class
,
$builder
,
@f_parts
) =
@_
;
if
(
@f_parts
== 0) {
return
$PURE
;
}
elsif
(
@f_parts
== 1) {
return
$f_parts
[0];
}
else
{
return
$class
->new([
map
{ @{
$_
->get_const} }
@f_parts
]);
}
}
sub
create_part_mapper {
my
(
$class
) =
@_
;
return
sub
{
$class
->new([
shift
]) };
}
1;
__END__
=pod
=head1 NAME
Data::Focus::Applicative::Const::List - Const applicative functor with List monoid
=head1 DESCRIPTION
B<< Internal use only. >>
This functor accepts an array-ref as its value.
=head1 METHODS
See L<Data::Focus::Applicative::Const>.
=head1 AUTHOR
Toshio Ito, C<< <toshioito at cpan.org> >>
=cut