the fact that creating a function with lambda versus the normal way is different is bonkers. for example, in f# (and other sane languages), the following are identical:
let test1 = fun x -> x * x
let test2 x = x * x
both return: x:int -> int
are they really different in python or is it just a weird naming problem? the article isn't explicit on the actual differences other than what is reported by the REPL.also, you can't pass operators as functions in python? in f#, you simply wrap them in parentheses.
let test3 f x y = f x y
> test3 (*) 2 3 ;;
val it : int = 6
i read an interview with hal abelson where he called python's lambda broken. seems so.edit: also, this guy's thoughts on map and filter, in my opinion, show the python community's backwoods thinking regarding functional programming. yes, it seems generator expressions are nice (they are called sequence expressions in f#), but map and filter, even for his simple examples are much more clear. they communicate better what is actually happening. the fact that he never uses map and filter at all and then goes on to basically say map and filter aren't even needed in python says a lot.