The best thing about this is that there is emulated thread management via setTimeout going on underneath to allow for Ctrl-C and other interactivity while things are running. No background workers, no running things on the server, this is some single-page engineering goodness.
It implements proper tail calls, too, so it looks like you can run `(define (f) (f)) (f)` forever.
Cool stuff, this is one of the most robust single-page REPL experiences I've seen.
This is hilariously awesome!
Aparently it's using ymacs (which I didn't know about until now) http://www.ymacs.org/ for the 'emacs'and an emscripten compiled version of Gambit (scheme).
I'm glad you guys appreciate the hack value! I'm personally amazed at Mihai Bazon's work on ymacs. By the way, if you want to drive the DOM from Scheme, there's the builtin function jseval:
Interacting with the REPL directly works for a few forms, and then it seems to get confused, interpreting output as part of the next form (I'm on Chrome for Linux version 38.0.2125.104 (64-bit)). However, when I open a buffer and write the Scheme over there, sending expressions as I usually do when developing, it works beautifully. An example:
What browser is that? I'm using Firefox 33.1.1 on Windows 7 and it's working fine, although I've just begun to explore the app. I'm not trying to deliberately break it.
So far this is rather impressive. A Scheme REPL in the browser, not bad!
Does it have tail calls, dynamic-wind, and hygienic macros? If so, I have a very interesting use for this in creating visualizations of microkanren execution traces.
It implements proper tail calls, too, so it looks like you can run `(define (f) (f)) (f)` forever.
Cool stuff, this is one of the most robust single-page REPL experiences I've seen.