Lambda again: Anonymous function definition

Greg wrote:
What's needed is something very concise and unobtrusive, such as
x, y => x + y
As inspired by Prolog:
x, y :- x + y
So this:
f = lambda x, y: x ** 2 + y ** 2
Or this:
def f(x, y): return x ** 2 + y ** 2
Becomes this:
f = x, y :- x ** 2 + y ** 2
And would logically transpose into this:
f(x, y) :- x ** 2 + y ** 2
Oooo...this rabbit hole is fun!
Joel

Joel Bender napisał(a):
Greg wrote:
What's needed is something very concise and unobtrusive, such as
x, y => x + y
As inspired by Prolog:
x, y :- x + y
So this:
f = lambda x, y: x ** 2 + y ** 2
Or this:
def f(x, y): return x ** 2 + y ** 2
Becomes this:
f = x, y :- x ** 2 + y ** 2
And would logically transpose into this:
f(x, y) :- x ** 2 + y ** 2
Oooo...this rabbit hole is fun!
Lambda should have the same syntax as ordinary functions. The only difference should be: you don't have to put the name of the function.
def f (x, y): return x ** 2 + y ** 2
g = f
h = def (x, y): return x ** 2 + y ** 2
Functions f, g and h are doing the same.

On Mon, Mar 31, 2008 at 3:23 AM, Leszek Dubiel leszek@dubiel.pl wrote:
Lambda should have the same syntax as ordinary functions. The only difference should be: you don't have to put the name of the function.
def f (x, y): return x ** 2 + y ** 2
g = f
h = def (x, y): return x ** 2 + y ** 2
Functions f, g and h are doing the same.
Javascript handles anonymous functions this way as well:
function f(x, y) { return x*x + y*y; }
g = f;
h = function(x, y) { return x*x + y*y; }
With that being said, it makes sense for the return statement to be omitted in lambdas (or anonymous defs, as I hope they will eventually be called), since those functions are limited to one statement.
- Eli
participants (3)
-
Eli Courtwright
-
Joel Bender
-
Leszek Dubiel