90c6ea537ed27e4aa5955f155121e4fe22839aa0
[homepage.git] / blog / posts / 2006 / 11 / more_fp_in_python_2.5.mdwn
1 [[meta date="2006-11-11 11:21:38 +0100"]]
2 More Functional Programming in Python 2.5, where's the Syntax?
3 ====
4
5 I'm glad to read that [more functional stuff is coming with Python
6 2.5](http://www.devx.com/webdev/Article/33005/1954?pf=true), especially for the
7   introduction of partial application, the heart of functional programming.
8
9 Still, FP is not only about semantics, is also about fostering code reuse and
10 implementing stuff in more elegant and concise way. For such stuff to be
11 effective though, a nice and handy syntax is (IMO) mandatory. Anyone knowing i
12 J. Random Functional Language (whatever Lisp dialect, ML, Haskell, ...) should
13 be able to guess how to apply function partially in Python.
14
15 Considering that Python has a long history of syntactic extensions via PEPs
16 (think about [list comp](http://www.python.org/dev/peps/pep-0202/) or [generator
17 expressions](http://www.python.org/dev/peps/pep-0289/)) I fail to understand why
18 to apply a function partially I have to write something as ugly as:
19
20     all_evens = functools.partial(all_divided_by, x=2)
21
22 It's only me or the most natural syntax, that everyone would be able to guess
23 out of the box, would have been:
24
25     all_evens = all_divided_by(x=2)
26
27 ?
28
29 [[tag lang/english planet/debian fp python]]
30