Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Data::Util::Curry(3)  User Contributed Perl Documentation Data::Util::Curry(3)

NAME
       Data::Util::Curry - Curries functions and methods

SYNOPSIS
	       use feature 'say';
	       use Data::Util qw(curry);

	       sub sum{
		       my $total = 0;
		       for my $x(@_){
			       $total += $x;
		       }
		       return $total;
	       }

	       # placeholder "\0" indicates a subscript	of the arguments
	       say curry(\&add,	\0, 42)->(10); # 52

	       # placeholder "*_" indicates all	the arguments
	       say curry(\&add,	*_)->(1	.. 10);	# 55

	       # two subscripts	and the	rest of	the arguments
	       say curry(\&add,	*_, \1,	\0)->(1	.. 5); # 3 + 4 + 5 + 1 + 2

DESCRIPTION
       (todo)

EXAMPLES
   Currying Functions
	       curry(\&f, \0, 2)->(1); # f(1, 2)
	       curry(\&f, 3, \0)->(4); # f(3, 4)
	       curry(\&f, *_)->(5, 6); # f(5, 6)

	       curry(\&f, \0, \1, *_)->(1, 2, 3, 4); # f(1, 2, 3, 4)
	       curry(\&f, *_, \0, \1)->(1, 2, 3, 4); # f(3, 4, 1, 2)

   Currying Methods
	       curry($obj, 'something',	*_)->(1, 2);  #	$obj->something(1, 2)

	       curry($obj, 'something',
		       foo => \0,
		       bar => \1)->(1, 2); # $obj->something(foo => 1, bar => 2)

	       curry(\0, 'something', \1)->($obj, 42);	 # $obj->something(42)
	       curry($obj, \0, *_)->('something', 1, 2); # $obj->something(1, 2)

   Argument Semantics
	       sub incr{ $_[0]++ }

	       my $i = 0;
	       curry(\&incr, \0)->($i);	# $i++
	       curry(\&incr, *_)->($i);	# $i++
	       curry(\&incr, $i)->();	# $i++

SEE ALSO
       Data::Util.

perl v5.24.1			  2012-10-20		  Data::Util::Curry(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Data::Util::Curry&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help