Changeset 1931

Show
Ignore:
Timestamp:
11/23/07 14:33:00 (14 months ago)
Author:
nishio
Message:

lang/unlambda/impl/in_python: due to _parse is a recursive function I should use Y combinator..

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/unlambda/impl/in_python/unlambda_oneliner.py

    r1929 r1931  
    3939lambda V=lambda X,c:c(V):V 
    4040 
    41 parse = lambda s: \ 
    42     (lambda iter:{ 
     41Y = lambda f:((lambda g: f(lambda x: g(g)(x))) 
     42              (lambda g: f(lambda x: g(g)(x)))) 
     43 
     44p = Y(lambda _parse: lambda iter:{ 
    4345        "i": lambda:lambda c:c(lambda X,c:c(X)), 
    4446        "d": lambda:D_, 
     
    6062        ".": lambda: Dot(iter.next()), 
    6163        "`": lambda: Apply(_parse(iter), _parse(iter)), 
    62     }.get(iter.next(), lambda: _parse(iter))())\ 
    63     (list(s).__iter__()) 
     64    }.get(iter.next(), lambda: _parse(iter))()) 
     65 
     66parse = lambda s: p(list(s).__iter__()) 
     67 
    6468 
    6569# Main loop