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

lang/unlambda/impl/in_python: lambda-ize _parse and run, remove _parse

Files:
1 modified

Legend:

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

    r1928 r1929  
    3939lambda V=lambda X,c:c(V):V 
    4040 
    41 def _parse(iter): 
    42     return { 
     41parse = lambda s: \ 
     42    (lambda iter:{ 
    4343        "i": lambda:lambda c:c(lambda X,c:c(X)), 
    4444        "d": lambda:D_, 
     
    6060        ".": lambda: Dot(iter.next()), 
    6161        "`": lambda: Apply(_parse(iter), _parse(iter)), 
    62     }.get(iter.next(), lambda: _parse(iter))() 
    63  
    64 parse = lambda s: _parse(list(s).__iter__()) 
     62    }.get(iter.next(), lambda: _parse(iter))())\ 
     63    (list(s).__iter__()) 
    6564 
    6665# Main loop 
     
    7271 
    7372from itertools import count, ifilter 
    74 def run(s): 
    75     unlambda.__setattr__("task", lambda:parse(s)(lambda f:lambda:None)) 
    76     ifilter(lambda x:not(unlambda.next()), count()).next() 
     73run = lambda s:\ 
     74    unlambda.__setattr__("task", lambda:parse(s)(lambda f:lambda:None)) or\ 
     75    ifilter(lambda x:not(unlambda.next()), count()).next() and None 
    7776 
    7877# Test