http://www.perlmonks.org?node_id=169305


in reply to Perl6 and Extreme Programming

Thanks for the topic you've picked Ovid. I too am very excited and look forward to many innovative 'tools' in Perl6 that will greatly enhance and support the kind of software development paradigm as XP.

You are asking...

Does anyone familiar with Perl6 care to offer concrete examples of what was meant by the XP quote?

I'm happy to know of one such feature you are inquiring about. The feature is termed as 'higher-order functions'. You can read a full thread on the related RFC. Damian Conaway also touches this subject in one of his diary entries. Moreover, Damian has written an excellent Perl5 module to simulate this feature of Perl6. Not surprisingly the module is called Perl6::Currying.

Having read through these resources, I'm sure you'll agree with me that this feature may well be amongst the few ones welcomed by the practitioners of the XP approach. One can develop a higher-order function and still use the function even with incomplete parameter list. This is great for a lot of resons. First, there's a way for you to write a function and test it in stages. Second, this allows for greater flexibility as to the use of a higher-order function. For example, you can derive lower-order variants of the higher-order functions to accomplish specific (albeit 'narrower' in purpose) tasks!

Anyhow, please do take a read as I can't possibly describe this feature as good as it has already been described in the aforementioned resources! ;-)

_____________________
$"=q;grep;;$,=q"grep";for(`find . -name ".saves*~"`){s;$/;;;/(.*-(\d+) +-.*)$/; $_=["ps -e -o pid | "," $2 | "," -v "," "];`@$_`?{print"+ $1"}:{print" +- $1"}&&`rm $1`; print$\;}