#
# 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;
}
