# # This software is Copyright 2005 by Elsevier Inc. You may use it # under the terms of the license at http://perl.plover.com/hop/LICENSE.txt . # ### ### curry.set_prototype ### ## Chapter 7 section 2.2.1 # Doesn't work before 5.8.1 use Scalar::Util 'set_prototype'; sub curry { my $f = shift; my $PROTOTYPE = shift; set_prototype(sub { my $first_arg = shift; my $r = sub { $f->($first_arg, @_) }; return @_ ? $r->(@_) : $r; }, $PROTOTYPE); }