On 11-Sep-09, at 11:26 AM, Brian Harvey wrote: >> The REPL is first and foremost a programming >> convenience for interactive development. It is not meant to be an >> end user >> interface, and it is not meant to be some "primary means" of >> deploying >> software programs, at least not in most cases. Usually, software is >> deployed in files, and not typed in manually or loaded through the >> REPL. > > I categorically reject this view. You are thinking of C, or C++, or > Java. > > What makes Lisp Lisp is two non-negotiable things: lambda, and the > repl. > Compilers are negotiable. Efficiency is negotiable. The REPL is not. > > If you want to invent some very complicated way to implement the > REPL that > allows for the other things you want to do, *while still 100% > maintaining > traditional correct REPL behavior*, more power to you.
I agree with this view, but I think your emphasis on the REPL is not quite right. The "features" I believe are more fundamental (in the Lisp mindset) are dynamism and introspection. Dynamism means that things can change late in the game (e.g. redefinition/mutation of a variable at run time). Introspection means that you have access at run time to internal parts of the system from the system itself (e.g. s-expressions, eval, macros). The REPL is a debugging tool and development paradigm that is possible because of these features. Marc _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
