Gigue is not the metacircular evaluator, simple scheme interpriter written in Go.
go get github.com/suzuken/gigue
(define (fold-right op initial sequence) (if (null? sequence) initial (op (car sequence) (fold-right op initial (cdr sequence))))) (print (fold-right / 1 (list 1 2 3)))
gigue examples/fold.scm, then output
Gigue has REPL.
-> % ./gigue > (define x 1) > (define y 2) > (load "examples/sum.scm") > (print (sum x y)) 3
Kenta Suzuki (a.k.a. suzuken)
For your reference
Written in above, Gigue is based on the interpriter written in SICP Chapter 4. If you are not similar to scheme, you don't mind it. I think writing scheme interpriter in scheme - metacircular evaluator - is much simpler than written in Go or other language.
If you're not have enough time to read SICP, scm.go, a Scheme interpreter in Go, as in SICP and lis.py | De Babbelbox of Pieter Kelchtermans may be helpful for understanding what a scheme interpriter is. A minimal Scheme interpreter, as seen in lis.py and SICP is a minimal scheme interpriter (surprisingly only 250 lines) written in Go .
And I found some projects which implements scheme interpriter in Go.