a = b = 1 just syntactic sugar?

Nielson Family junk at geekabytes.net
Mon Jun 9 16:22:31 CEST 2003


Paul,

Very interesting.  Thanks for the feedback.

IMHO, the self-reference is easier to read.

-- Seth James Nielson

Paul Foley wrote:

>On Sat, 07 Jun 2003 15:49:21 -0600, junk  wrote:
>
>  
>
>>Okay,  I know this is somewhat tangential to your discussion; please
>>excuse my interruption.
>>    
>>
>
>  
>
>>If you care, I wrote a little function that will return the current
>>function within a block.  This means, you can have anonymous recursive
>>functions like this:
>>    
>>
>
>  
>
>>import selfref
>>factorial = lambda x: ((x==0)*1) or (x * selfref.myself(x-1))
>>    
>>
>
>  
>
>>Feedback please?
>>    
>>
>
>What's wrong with
>
>  factorial = lambda x: (lambda f: (lambda f: f(f)(x))(lambda g: lambda x: f(g(g))(x)))(lambda f: lambda x: (x==0)*1 or x*f(x-1))
>
>
>Or, more readably,
>
>  Y = lambda f: (lambda g: g(g))(lambda g: lambda h: f(g(g))(h))
>
>  factorial = Y(lambda f: lambda x: (x==0)*1 or x*f(x-1))
>
>or
>
>  factorial = Y(lambda f: lambda x: x<2 and 1 or x*f(x-1))
>
>
>  
>







More information about the Python-list mailing list