bbc-basic: Start of step 9: add 'try*' form and 'throw'.
[jackhill/mal.git] / ps / step4_if_fn_do.ps
index 422f6eb..87b43cf 100644 (file)
@@ -6,7 +6,7 @@
 (core.ps) runlibfile
 
 % read
-/_readline { print flush (%stdin) (r) file 99 string readline } def
+/_readline { print flush (%stdin) (r) file 1024 string readline } def
 
 /READ {
     /str exch def
@@ -47,7 +47,9 @@ end } def
         ast env eval_ast
     }{ %else apply the list
         /a0 ast 0 _nth def
-        /def! a0 eq { %if def!
+        a0 _nil? { %if ()
+            ast
+        }{ /def! a0 eq { %if def!
             /a1 ast 1 _nth def
             /a2 ast 2 _nth def
             env a1  a2 env EVAL  env_set
@@ -96,7 +98,7 @@ end } def
             }{ %else (regular procedure/function)
                 (cannot apply native proc!\n) print quit
             } ifelse } ifelse
-        } ifelse } ifelse } ifelse } ifelse } ifelse
+        } ifelse } ifelse } ifelse } ifelse } ifelse } ifelse
     } ifelse
 end } def