
On Wed, 11 May 2005, Jerzy Karczmarczuk wrote:
Pierre Barbier de Reuille wrote about Python and lambdas:
Well, I would not recommand using lambda functions ! The main reason is they are limited in that they only accept expressions (ie. not statements) and you can end up with very ugly things (mainly because of the lack of if-expressions).
Oh! You would *like to have imperative statements within LAMBDA*?
Friend, you are in state of mortal sin!
I suppose that if somebody decides to use lambdas, he wants to do some functional programming, no?
Debatable.
True, there are no conditional expressions. But there are because of the laziness of boolean combinators. This works:
(x > y) or 'allez en enfer'
Yes, and hallelujah, there are other options too -- suppose we define a helper function (because "exec" is also a statement) to execute a compiled code object: def ex(st, env): exec(compile(st, '<string>', 'single'), env) Now we can use this function to compile and execute anything we like from inside the lambda! five = lambda x: ex('if x == 5:\n\tprint "five"\nelse:\n\tprint "not five"', locals()) Donn