Index: /lang/unlambda/impl/in_python/unlambda_lambda.py
===================================================================
--- /lang/unlambda/impl/in_python/unlambda_lambda.py (revision 1766)
+++ /lang/unlambda/impl/in_python/unlambda_lambda.py (revision 1767)
@@ -24,42 +24,21 @@
 import sys
 
-# Main loop
-#
-def run(s):
-    task = lambda:parse(s)(FinalCont)
-    try:
-        while True:
-            task = task()
-    except StopIteration, e:
-        return
-
-# Continuation
-FinalCont = lambda f:FinalTask
-
-# Task
-#
-
-def FinalTask(X=None):
-    raise StopIteration()
-
-ApplyTask = lambda X,Y,c:lambda:X(Y,c)
-
 # Node
-#
-I = lambda: lambda c:c(lambda X,c:c(X))
-Dot = lambda char: (lambda c: c(lambda X, c: sys.stdout.write(char) or c(X)))
+I = lambda:lambda c:c(lambda X,c:c(X))
+Dot = lambda char:lambda c:c(
+    lambda X,c:sys.stdout.write(char)or c(X))
 Apply = lambda nX,nY:lambda c:\
-    lambda:nX(lambda X:\
-        lambda:\
+    lambda:nX(lambda X:
+        lambda:
             (X == D_)and(
                 c(lambda Y,c:nY(lambda X:c(lambda X,c:X(Y,c))))
             )or(
                 nY(lambda Y: lambda :X(Y, c))))
+D = lambda:D_
 D_ = lambda c:c(D_)
-D = lambda :D_
-C = lambda :lambda c:c(lambda Y,c: lambda :Y(lambda F,c_:c(F),c))
 V0 = lambda X,c:c(V0)
 V = lambda:lambda c:c(V0)
 K = lambda:lambda c:c(lambda X,c:c(lambda Y,c:c(X)))
+C = lambda:lambda c:c(lambda Y,c:lambda:Y(lambda F,c_:c(F),c))
 S = lambda:lambda c:c(
         lambda X,c:c(
@@ -77,12 +56,12 @@
     return {
         "i": lambda: I(),
-        ".": lambda: Dot(iter.next()),
-        "`": lambda: Apply(_parse(iter), _parse(iter)),
-        "r": lambda: Dot("\n"),
-        "d": lambda: D(), # special form
+        "d": lambda: D(),
         "c": lambda: C(),
         "v": lambda: V(),
         "s": lambda: S(),
         "k": lambda: K(),
+        "r": lambda: Dot("\n"),
+        ".": lambda: Dot(iter.next()),
+        "`": lambda: Apply(_parse(iter), _parse(iter)),
     }.get(iter.next(), lambda: _parse(iter))()
 
@@ -90,4 +69,11 @@
     return _parse(list(s).__iter__())
 
+# Main loop
+def run(s):
+    task = lambda:parse(s)(lambda f:lambda:None)
+    while task:
+        task = task()
+
+# Test
 def _test():
     import doctest
