NAME
Data::Monad::List - The List monad.
SYNOPSIS
use Data::Monad::List;
my $m = scalar_list(10, 20);
$m = $m->flat_map(sub {
my $v = shift;
scalar_list($v + 1, $v + 2);
});
my @result = $m->scalars; # (11, 12, 21, 22)
DESCRIPTION
Data::Monad::List represents non-deterministic values.
This module is marked EXPERIMENTAL. API could be changed without any notice.
METHODS
- $list = scalar_list(@single_values)
-
Is the same as following lines.
$list = Data::Monad::List->new([$single_values[0]], [$single_values[1]], ...)
- $list = list_unit(@values)
- $list = list_zero()
- $f = list_flat_map_multi(\&f, $list1, $list2, ...)
- $f = list_map_multi(\&f, $list1, $list2, ...)
- $list = list_sequence($list1, $list2, ...)
-
These are shorthand of methods which has the same name.
- $list = Data::Monad::List->new(\@values1, \@values2, ...)
-
The constructor of this class.
- zero
-
Overrides methods of Data::Monad::Base::MonadZero.
- unit
- flat_map
-
Overrides methods of Data::Monad::Base::Monad.
- @values = $list->values
-
Retrieves list of values from
$list
- @single_values = $list->scalars
-
Retrieves values which was set by the
scalar_list
method.
AUTHOR
hiratara <hiratara {at} cpan.org>
SEE ALSO
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.