Merge pull request #378 from asarhaddon/test-macro-not-changing-function
[jackhill/mal.git] / cs / step1_read_print.cs
index 62cd7ad..43bf3c4 100644 (file)
@@ -20,28 +20,27 @@ namespace Mal {
             return printer._pr_str(exp, true);
         }
 
-        // REPL
-        static MalVal RE(string env, string str) {
-            return EVAL(READ(str), env);
-        }
-
+        // repl
         static void Main(string[] args) {
-            string prompt = "user> ";
-            
+            Func<string, MalVal> RE = (string str) => EVAL(READ(str), "");
+
             if (args.Length > 0 && args[0] == "--raw") {
                 Mal.readline.mode = Mal.readline.Mode.Raw;
             }
+
+            // repl loop
             while (true) {
                 string line;
                 try {
-                    line = Mal.readline.Readline(prompt);
+                    line = Mal.readline.Readline("user> ");
                     if (line == null) { break; }
+                    if (line == "") { continue; }
                 } catch (IOException e) {
                     Console.WriteLine("IOException: " + e.Message);
                     break;
                 }
                 try {
-                    Console.WriteLine(PRINT(RE(null, line)));
+                    Console.WriteLine(PRINT(RE(line)));
                 } catch (Mal.types.MalContinue) {
                     continue;
                 } catch (Exception e) {