Show
Ignore:
Timestamp:
11/19/07 00:45:44 (14 months ago)
Author:
nishio
Message:

lang/unlambda/impl/in_python: lambda version

Files:
1 copied

Legend:

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

    r1757 r1758  
    5252    def run(): 
    5353        if Debug.show_node: print node 
    54         return node.eval(cont) 
     54        return node(cont) 
    5555    return run 
    5656 
     
    6969    def __str__(self): 
    7070        return "I" 
    71     def eval(self, cont): 
     71    def __call__(self, cont): 
    7272        def I0(X, cont): 
    7373            return cont(X) 
     
    8080    def __str__(self): 
    8181        return "(print %r)" % self.c 
    82     def eval(self, cont): 
     82    def __call__(self, cont): 
    8383        def Dot0(X, cont): 
    8484            import sys 
     
    9595    def __str__(self): 
    9696        return "(apply %s %s)" % (self.nX, self.nY) 
    97     def eval(self, cont): 
     97    def __call__(self, cont): 
    9898        nY = self.nY 
    9999        def next(X): 
     
    107107                                return X(Y, cont) 
    108108                            return cont(Promise1) 
    109                         return nY.eval(next) 
     109                        return nY(next) 
    110110                    return cont(Promise0) 
    111111 
     
    115115                        return X(Y, cont) 
    116116                    return _App2 
    117                 return nY.eval(next) 
     117                return nY(next) 
    118118            return _App1 
    119119        return EvalTask(self.nX, next) 
     
    123123    def __str__(self): 
    124124         return "D" 
    125     def eval(self, cont): 
     125    def __call__(self, cont): 
    126126        return cont(self) 
    127127     
     
    131131    def __str__(self): 
    132132        return "C" 
    133     def eval(self, cont): 
     133    def __call__(self, cont): 
    134134        def C0(Y, cont): 
    135135            def C1(func, new_cont): 
     
    147147    def __str__(self): 
    148148        return "V" 
    149     def eval(self, cont): 
     149    def __call__(self, cont): 
    150150        def V0(X, cont): 
    151151            return cont(V0) 
     
    156156    def __str__(self): 
    157157        return "K" 
    158     def eval(self, cont): 
     158    def __call__(self, cont): 
    159159        def K0(X, cont): 
    160160            def K1(Y, cont): 
     
    167167    def __str__(self): 
    168168        return "S" 
    169     def eval(self, cont): 
     169    def __call__(self, cont): 
    170170        def S0(X, cont): 
    171171            def S1(Y, cont): 
     
    183183    def __init__(self, f): 
    184184        self.f = f 
    185     def eval(self, cont): 
     185    def __call__(self, cont): 
    186186        return cont(self.f) 
    187187 
    188188class At(Node): 
    189189    def __str__(self): return "At" 
    190     def eval(self, cont): 
     190    def __call__(self, cont): 
    191191        def At0(X, cont): 
    192192            import sys 
     
    210210        self.c = c 
    211211 
    212     def eval(self, cont): 
     212    def __call__(self, cont): 
    213213        def Qu0(X, cont): 
    214214            if At.c == self.c: 
     
    221221 
    222222class Pipe(Node): 
    223     def eval(self, cont): 
     223    def __call__(self, cont): 
    224224        def Pipe0(X, cont): 
    225225            if At.c != -1: 
     
    232232 
    233233class E(Node): 
    234     def eval(self, cont): 
     234    def __call__(self, cont): 
    235235        def E0(X, cont): 
    236236            return FinalTask(X)