> eval-string trailing junk: "(- 4 5 6)" This happens because the string passed to eval-string should contain just one expression to be evaluated. If you want more than one, wrap them in (begin ...) or (list ...) etc.