Extending Syntax - Functional Programming meets Macros
Source: German Perl Workshop 2014 on the 2014-03-28.
Speaker: Rolf Langsdorf (LanX)
Perl has huge flexibility to extend its own syntax, not always to the good of the maintainability.
In YAPC Riga 2011 we showed a functional approach to elegantly provide new idioms, including operators and control structures, just by using
a) The syntactic sugar of chaining functions with special prototypes b) A LISP like macro system which expands functions to inlined code.
(see http://yapceurope.lv/ye2011/talk/3597 )
We argued that this approach is - more reliable - easy to install, use, maintain ... - compatible with established development tools - less delicate in edge cases
And demonstrated how to extend Perl5 to have idioms like
- List Comprehensions,
- Co-Routines and Gather-Take,
Aim of this presentation is to finish what we started and trying to implement a variety of language features known from Perl6, Python or Ruby.
We will see that the real complexity lies in the design and not in the implementation of good idioms.