1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-21 10:37:58 +03:00
mal/scheme/step1_read_print.scm
Vasilij Schneidermann a7b8df6715 Rename to scheme
2017-09-11 23:54:50 +02:00

37 lines
713 B
Scheme

(import (scheme base))
(import (scheme write))
(import (lib util))
(import (lib reader))
(import (lib printer))
(import (lib types))
(define (READ input)
(read-str input))
(define (EVAL ast)
ast)
(define (PRINT ast)
(pr-str ast #t))
(define (rep input)
(PRINT (EVAL (READ input))))
(define (main)
(let loop ()
(let ((input (readline "user> ")))
(when input
(guard
(ex ((error-object? ex)
(when (not (memv 'empty-input (error-object-irritants ex)))
(display "[error] ")
(display (error-object-message ex))
(newline))))
(display (rep input))
(newline))
(loop))))
(newline))
(main)