Here is it rewritten using the proposal: ``` #Definition def myFoo (str1, str2, foo, str = " "): print( foo(str = str1), foo(str = str2) )
#Call myFoo ("hello", "world!"): str = list(str)[0].upper() + str[1:] return str ``` Are you looking for multi-line lambdas? Isn't this basically just defining a function... but without an argument list? How would that know what "str" is? Since you can already define functions inside of functions, what functionality does this give you that you can't already do with something like this: def myFoo(str1, str2, foo): print(foo(str1), foo(str2)) def main(): print("Stuff here") def f1(str): str = list(str)[0].upper() + str[1:] return str myFoo("hello", "world", f1) def f1(str): #yup, same name str = str[:-1] + list(str)[-1].upper() return str myFoo("hello", "world", f1) del f1 print("More stuff") main() Which results in: Stuff here Hello World hellO worlD More stuff -- https://mail.python.org/mailman/listinfo/python-list