I write for Chicken Scheme inside vim and tmux with some minor plumbing to send my selections/buffers to evaluate in another tmux pane that contains my repl.
This is basically the same thing you do for every other language when using vim/tmux.
Feel free to replace vim/tmux with $EDITOR/$TERMINALMUXER of your choice here, outside of emacs, which kinda does this already as long as you don't care about updating your repl buffer at the same time as you are editing code (say, whatever code you send doesn't return immediately because it's doing something time-consuming). vim+conque has this same issue as emacs, making $EDITOR/$TERMINALMUXER the only alternative if you want to use the repl to hack/dispatch big jobs.