One of the techniques often mentioned in functional programming circles is function currying, or taking a function with (N) parameters and returning another function that takes (N-M) parameters. The process is straightforward enough: you use a closure to return a function, like so:
sub add_to { my $arg1 = $_[0]; return sub { add($arg1, $_[0]) }; } my $plus_5 = add_to(5); my $x = $plus_5->(3); # $x == 8
My problem is this: examples like the one above are the only ones I'm able to find, and I may be missing something, but it looks like I've spent 100 keystrokes or so to say "$x = 8". Woo hoo!
My question is this: function currying really looks useful, but in ways that I haven't yet worked out; can the esteemed monks share examples (ideas or full-blown code) that demonstrates when and where currying is a useful technique (and maybe where it isn't)?
In reply to Currying--useful examples? by macrobat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |