Just another Perl shrine PerlMonks

### Re^5: Simplifying repeated parameter lists (lambdas, anonymous functions, closures, currying )

 on Sep 19, 2012 at 20:44 UTC ( #994537=note: print w/replies, xml ) Need Help??

in reply to Re^4: Simplifying repeated parameter lists
in thread Simplifying repeated parameter lists

That could have worked :)

lambdas , lambda
The first lambda language to go mainstream ?

a new keyword "lambda language"

https://en.wikipedia.org/wiki/Lambda_language
https://en.wikipedia.org/wiki/Lambda_language#Lambda_calculus_and_programming_languages
https://en.wikipedia.org/wiki/Lambda_language#Anonymous_functions
https://en.wikipedia.org/wiki/Anonymous_function
https://en.wikipedia.org/wiki/Anonymous_function#Closures
https://en.wikipedia.org/wiki/Anonymous_function#Currying
https://en.wikipedia.org/wiki/Anonymous_function#Perl
Perl 5 supports anonymous functions, as follows:
```
(sub { print "I got called\n" })->();         # 1. fully anonymous, ca
+lled as created

my \$squarer = sub { my \$x = shift; \$x * \$x }; # 2. assigned to a varia
+ble

sub curry {
my (\$sub, @args) = @_;
return sub { \$sub->(@args, @_) };         # 3. as a return value o
+f another function
}

# example of currying in Perl
sub sum { my \$tot = 0; \$tot += \$_ for @_; \$tot } # returns the sum of
+its arguments
my \$curried = curry \&sum, 5, 7, 9;
print \$curried->(1,2,3), "\n";    # prints 27 ( = 5 + 7 + 9 + 1 + 2 +
+3 )

• Comment on Re^5: Simplifying repeated parameter lists (lambdas, anonymous functions, closures, currying )

Create A New User
Node Status?
node history
Node Type: note [id://994537]
help
Chatterbox?
 [haukex]: I figured that POD tests make sense, but only as author tests [choroba]: I mean, the slides are, but not the makefile with scripts to create them [Corion]: haukex: I've only now arrived at that revelation ;) [Corion]: choroba: I use spod5, which also has that support, and also implements its own kinda-make stuff [haukex]: But that module I just linked to assumes that most verbatim blocks are runnable code, I have other modules where that's not the case, so there I just copy-and-paste the synopsis into the author tests... [haukex]: not the most efficient, but then again, I don't have that many modules on CPAN :-) [Corion]: haukex: Yes, but if it's only supposed to run on my machine, I can be far more liberal with how I extract the code etc. [Corion]: haukex: Yes - I see the benefit of using Dist::Zilla for people with 150+ modules on CPAN, but I don't see it for myself, and I'm always put off from contributing to such modules because they require a lot of toolchain setup that I don't want to ... [Corion]: ... spend time on if I only want to provide a short patch [haukex]: Corion: Yes exactly, in the author tests I don't worry about portability as much, I also don't list the author tests' dependencies in Makefile.PL

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (13)
As of 2017-02-27 12:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Before electricity was invented, what was the Electric Eel called?

Results (385 votes). Check out past polls.