If an expression starts with a symbol bound to a racket syntax transformer, then the arc compiler switches to "racket-style" output.
(begin "everything in here is racket code...")
arc> (begin (require racket) (%do (+ "foo" 42)))
It's pretty convenient to call any racket function without worrying about interop.
> If you want to switch back to arc, you can use (%do ...)
Personally I would prefer '.arc' or '%arc':
arc> (begin (require racket) (.arc (+ "foo" 42)))
.arc / .racket (or .rkt) seems more intuitive than .arc / $
$arc would be ok too. I can get behind that :)