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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe