Xref: utzoo comp.lang.lisp:3677 comp.lang.scheme:1681 Path: utzoo!utgpu!watserv1!watmath!att!cbnewsc!lgm From: lgm@cbnewsc.att.com (lawrence.g.mayka) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Virtues of Lisp syntax Summary: We "manipulate programs" every day via macros Message-ID: <1990Sep18.012130.13065@cbnewsc.att.com> Date: 18 Sep 90 01:21:30 GMT References: <3368@skye.ed.ac.uk> <20301@well.sf.ca.us> Followup-To: comp.lang.lisp Organization: AT&T Bell Laboratories Lines: 32 In article <20301@well.sf.ca.us>, jjacobs@well.sf.ca.us (Jeffrey Jacobs) writes: > the "fix" would be propagated even to pending calls. E.g. if you > had > (DEFUN FOO (X Y) > expr1 > expr2 > ...) > > and expr1 invoked FOO recursively, you could break the execution, > change expr2 (or TRACE it, or BREAK it or...), all of the pending > invocations on the stack were affected. (You can't do this with > compiled code). You can if you use the Set Breakpoint command on a Symbolics workstation. TRACE :WHEREIN and ADVISE-WITHIN are also applicable if 'expr2' is a function call. Or if you mean to change FOO permanently, recompile it and then reinvoke it at its earliest occurrence on the stack. > However, if compilation is the primary development strategy (which it > is with CL), then the LISP syntax is not particularly useful. Modern The great power of Common Lisp's unique syntax extension facilities (a.k.a. its macro capability) depends on the language's regular syntax. Lawrence G. Mayka AT&T Bell Laboratories lgm@iexist.att.com Standard disclaimer.