Show
Ignore:
Timestamp:
11/19/07 01:26:08 (14 months ago)
Author:
nishio
Message:

lang/unlambda/impl/in_python: replace K and S with lambda

Files:
1 modified

Legend:

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

    r1762 r1763  
    8585V = lambda:lambda c:c(V0) 
    8686 
    87 class K(Node): 
    88     "constant: ``kXY = X" 
    89     def __str__(self): 
    90         return "K" 
    91     def __call__(self, cont): 
    92         def K0(X, cont): 
    93             def K1(Y, cont): 
    94                 return cont(X) 
    95             return cont(K1) 
    96         return cont(K0) 
    97  
    98 class S(Node): 
    99     "substitution: ```sXYZ = ``XZ`YZ" 
    100     def __str__(self): 
    101         return "S" 
    102     def __call__(self, cont): 
    103         def S0(X, cont): 
    104             def S1(Y, cont): 
    105                 def S2(Z, cont): 
    106                     return EvalTask( 
     87K = lambda:lambda c:c(lambda X,c:c(lambda Y,c:c(X))) 
     88 
     89S = lambda:lambda c:c( 
     90        lambda X,c:c( 
     91            lambda Y,c:c( 
     92                lambda Z,c:EvalTask( 
     93                    Apply( 
    10794                        Apply( 
    108                             Apply(Func2Node(X), Func2Node(Z)), 
    109                             Apply(Func2Node(Y), Func2Node(Z))), cont) 
    110                 return cont(S2) 
    111             return cont(S1) 
    112         return cont(S0) 
     95                            Func2Node(X), 
     96                            Func2Node(Z)), 
     97                        Apply( 
     98                            Func2Node(Y), 
     99                            Func2Node(Z))), c)))) 
    113100 
    114101class Func2Node(Node):