[Python-ideas] Proposal for function expressions
Jan Kaliszewski
zuo at chopin.edu.pl
Mon Jul 13 13:40:37 CEST 2009
Dear Pythonistas,
It's my first post in the list, so let me introduce myself. My name is Jan
Kaliszewski, I am a composer (studied in Frederic Chopin Academy of Music
in Warsaw) and a programmer (currently working in Record System company on
Anakonda -- ERP system being programmed in Python).
Comming to the matter...
13-07-2009 Chris Perkins <chrisperkins99 at gmail.com>:
> In other words, I think code that puts things in the opposite order
> from the way you think of them is harder to read.
>
> Another example: if I'm thinking that what I want to do is "substitute
> some stuff in a string", then I want to start by typing/reading
> "re.sub(...)", and not "def some_made_up_name(...):"
>
> re.sub(pat, &, s) do(m):
> # several lines of code
>
> vs.
>
> def temp(m):
> # several lines of code
> re.sub(pat, temp, s)
>
> The latter relegates the key line of code to the very last line,
> making it harder to see at a glance what it does.
>
> So yes, the point of this really is just to allow you to write code
> "in the right order".
I like the idea of '&' (or another character/word in that role) -- but
maybe it'd be enough to extend an existing feature: decorators with it,
and to add possibility to use that special character/word as a function
name after 'def'?
E.g.:
###################
# Networking
dfr = twisted.whatever(...)
# @dfr.addCallback(&) could be equivalent
@dfr.addCallback
def &(result):
handle(result)
@dfr.addErrback
def &(err):
handle_err(err)
###################
# GUI (for some hypothetical library)
@my_widget.add_button('Go').on('click', &)
def &(evt):
if evt.ctrl_key:
do_something()
else:
do_other_stuff()
# or, if we want to keep the result:
@my_widget.add_button('Go').on('click', &)
def button_clicked(evt):
if evt.ctrl_key:
do_something()
else:
do_other_stuff()
###################
# Threads
@thread.start_new:
def &():
do_some_work()
Best regards,
Jan Kaliszewski
More information about the Python-ideas
mailing list