# # 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.eval ### ## Chapter 7 section 2.2.1 sub curry { my $f = shift; my $PROTOTYPE = shift; $PROTOTYPE = "($PROTOTYPE)" if defined $PROTOTYPE; my $CODE = q{sub PROTOTYPE { my $first_arg = shift; my $r = sub { $f->($first_arg, @_) }; return @_ ? $r->(@_) : $r; }}; $CODE =~ s/PROTOTYPE/$PROTOTYPE/; eval $CODE; }