Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

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

by Anonymous Monk
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 )
  • Download Code

Log In?
Username:
Password:

What's my password?
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.