(throw 'return (mal-env-set env identifier value))))
((eq a0* 'macroexpand)
(throw 'return (MACROEXPAND a1 env)))
+ ((eq a0* 'elisp*)
+ (throw 'return (mal-string (format "%S" (eval (read (mal-value a1)))))))
((eq a0* 'try*)
(condition-case err
(throw 'return (EVAL a1 env))
--- /dev/null
+;; Testing basic elisp interop
+
+(elisp* "42")
+;=>"42"
+
+(elisp* "(+ 1 1)")
+;=>"2"
+
+(elisp* "[foo bar baz]")
+;=>"[foo bar baz]"
+
+(elisp* "(mapcar '1+ (number-sequence 0 2))")
+;=>"(1 2 3)"
+
+(elisp* "(progn (princ \"Hello World!\n\") nil)")
+; Hello World!
+;=>"nil"
+
+(elisp* "(setq emacs-version-re \"24\\\.[[:digit:]]\\\.[[:digit:]]\")")
+(elisp* "(and (string-match-p emacs-version-re emacs-version) t)")
+;=>"t"