All: *ARGV* and *host-language*. Misc syncing/fixes.
[jackhill/mal.git] / clojure / src / step5_tco.clj
index 69e09bf..da47669 100644 (file)
 
 ;; core.clj: defined using Clojure
 (doseq [[k v] core/core_ns] (env/env-set repl-env k v))
-(env/env-set repl-env 'eval (fn [ast] (EVAL ast repl-env)))
 
 ;; core.mal: defined using the language itself
 (rep "(def! not (fn* [a] (if a false true)))")
 
+;; repl loop
+(defn repl-loop []
+  (let [line (readline/readline "user> ")]
+    (when line
+      (when-not (re-seq #"^\s*$|^\s*;.*$" line) ; blank/comment
+        (try
+          (println (rep line))
+          (catch Throwable e
+            (clojure.repl/pst e))))
+      (recur))))
+
 (defn -main [& args]
-  (loop []
-    (let [line (readline/readline "user> ")]
-      (when line
-        (when-not (re-seq #"^\s*$|^\s*;.*$" line) ; blank/comment
-          (try
-            (println (rep line))
-            (catch Throwable e
-              (clojure.repl/pst e))))
-        (recur)))))
+  (repl-loop))