On 11 Sep 2009, at 4:45 pm, Brian Harvey wrote: >> Says who? > > Says me, of course. :-) > > I'm guessing (I could be wrong of course) that you're not old enough > to > remember the days before interactive computing.
Spot on, I'm a whippersnapper of thirty, who grew up with 1980s-era 8- bit micros with BASIC REPLs :-) > People used to have to debug > with both hands tied behind their back, effectively -- there wasn't > a keyboard > for them to /use/ their hands on. But, I've done plenty of embedded work, the worst case of which being that I had merely one LED as my debugging feedback. Still scarred, I go into a killing rage whenever I see an eight-pin micro-controller... I've sworn never to touch anything too limited to at least run FORTH ;-) ...so, yes, I do know the wonder of a REPL for debugging and hacking; I'd have to not have the facility. Chicken, for example, is primarily a compiler; it's a very static environment - but eval was written in Scheme, somewhat metacircularly, and compiled with the Chicken compiler, and lo, "csi", the Chicken REPL came to be. It's really a different implementation, that merely happens to implement (almost) the same language, and uses the underlying Scheme data model of the compiled runtime so that you can call compiled closures (which is how cons/car/cdr appear) and they use the same pairs and whatnot. AIUI the interpreter 'compiles' lambdas into closures in the compiled world that happen to have the code for the interpreter with the closure body closed over within it or something like that, so interpreted-code closures work fine with compiled higher-order functions. I presume the macro-expansion phase in the compiler uses the same implementation of eval as csi. So on the one hand, the core Chicken language works fine without a REPL, and one can then add one on top by implementing eval and then writing a REPL... ABS -- Alaric Snell-Pym Work: http://www.snell-systems.co.uk/ Play: http://www.snell-pym.org.uk/alaric/ Blog: http://www.snell-pym.org.uk/archives/author/alaric/ _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
