aboutsummaryrefslogtreecommitdiff
path: root/clojure/src/step0_repl.clj
blob: 405037a87fb96505881f604a64e5bc1de182bbb3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(ns step0-repl
  (:require [readline]))


;; read
(defn READ [& [strng]]
  strng)

;; eval
(defn EVAL [ast env]
  ast)

;; print
(defn PRINT [exp]
  exp)

;; repl
(defn rep [strng] (PRINT (EVAL (READ strng), {})))
;; repl loop
(defn repl-loop []
  (let [line (readline/readline "user> ")]
    (when line
      (println (rep line))
      (recur))))

(defn -main [& args]
  (repl-loop))