3 ms·
How about when the function is being passed as an argument to a function? Does the ')' just go on the next line by itself? What if it's not the last argument? T
by natrius 17y ago
How about when the function is being passed as an argument to a function? Does the ')' just go on the next line by itself? What if it's not the last argument? There are many opportunities for ambiguity and/or ugliness.
- grandalf 17y agoin Python, it works like: foo(a, b, lambda x: x+2) or foo2(a, b, foo): foo() # this is like js The lambda is closed by the next ) or ,
- natrius 17y agoRight, but you can't have multi-line anonymous functions, which are pleasant to use in Ruby and JavaScript.
- grandalf 17y agoTrue, but you can just write a non-anyonymous function in the current scope, which can be passed as boo or called as boo(): def test(): def boo(x): x += 2 x += 3 return x something_else(boo, 33, "hi") test() This is equivalent to how procs are often used in Ruby...
- jules 17y agocollection.each(lambda x: ... ... ) Or if the language doesn't require () to call a method, and uses `do` instead of `lambda`: collection.each do x: ... ... If it's not the first argument: map(lambda x: ... ... , collection) Yes this is ugly, but using a multi line anonymous function in the middle of an argument list will always be ugly.