mirror of
https://github.com/kanaka/mal.git
synced 2024-09-21 10:37:58 +03:00
34 lines
521 B
Scheme
34 lines
521 B
Scheme
|
(import (scheme base))
|
||
|
(import (scheme write))
|
||
|
|
||
|
(define (READ input)
|
||
|
input)
|
||
|
|
||
|
(define (EVAL input)
|
||
|
input)
|
||
|
|
||
|
(define (PRINT input)
|
||
|
input)
|
||
|
|
||
|
(define (rep input)
|
||
|
(PRINT (EVAL (READ input))))
|
||
|
|
||
|
(define (readline prompt)
|
||
|
(display prompt)
|
||
|
(flush-output-port)
|
||
|
(let ((input (read-line)))
|
||
|
(if (eof-object? input)
|
||
|
#f
|
||
|
input)))
|
||
|
|
||
|
(define (main)
|
||
|
(let loop ()
|
||
|
(let ((input (readline "user> ")))
|
||
|
(when input
|
||
|
(display (rep input))
|
||
|
(newline)
|
||
|
(loop))))
|
||
|
(newline))
|
||
|
|
||
|
(main)
|