use Perl6::Currying; sub add($a,$b) { $a + $b } my $incr = &add.prebind(b=>1); print $incr->(7), "\n"; my $div = sub ($x, $y) { $x / $y }; print $div->(22,7), "\n"; my $half_of = &$div.prebind(y=>2); my $reciprocal = $div.prebind(x=>1); print $half_of->(7), "\n"; print $reciprocal->(7), "\n"; my $pi_ish = &$div.prebind(y=>7, x=>22); print $pi_ish->(), "\n"; my $one_half = &{$half_of}.prebind(x=>1); print $one_half->(), "\n"; sub getdiv { return $div }; my $tenth = &{getdiv()}.prebind(y=>10); print $tenth->(7), "\n"; eval { my $bad = $tenth.prebind(y=>'???') } or print $@; eval { my $bad = $div.prebind(q=>'???') } or print $@;