(vals ,_vals)
(contains? ,_contains?)
(sequential? ,_sequential?)
- (readline ,readline)
+ (readline ,_readline)
(meta ,_meta)
(with-meta ,_with-meta)
(atom ,make-atom)
;;(use-modules (ice-9 readline))
(library (readline)
- (export readline add-history)
+ (export _readline)
(import (guile) (ice-9 readline)))
(define mal-history
(format #f "~a/.mal-history" (getenv "HOME")))
(setenv "GUILE_HISTORY" mal-history)
-
+(readline-set! bounce-parens 0)
(activate-readline)
-;;(define (readline prompt)
-;; (display prompt)
-;; ((@ (ice-9 rdelim) read-line) (current-input-port)))
+(define (_readline prompt)
+ (let ((str (readline prompt)))
+ (add-history str)
+ str))
(import (readline))
-(define (READ) (readline "user> "))
+(define (READ) (_readline "user> "))
(define (EVAL ast env) ast)
(define (PRINT str)
(and (not (eof-object? str))
- ;;(add-history str)
(format #t "~a~%" str)))
(define (LOOP continue?)
(import (readline) (reader) (printer))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (EVAL ast env) ast)
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(/ . ,/)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs e)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs e)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs e)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs e)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs (map (lambda (x) (make-func x)) e))))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs (map (lambda (x) (make-func x)) e))))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
(make-Env #:binds b #:exprs (map (lambda (x) (make-func x)) e))))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- ;;(add-history str)
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)
env)))
(define (READ)
- (read_str (readline "user> ")))
+ (read_str (_readline "user> ")))
(define (eval_ast ast env)
(define (_eval x) (EVAL x env))
(define (PRINT exp)
(and (not (eof-object? exp))
- (add-history (object->string exp))
(format #t "~a~%" (pr_str exp #t))))
(define (LOOP continue?)