Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!casbah.acns.nwu.edu!ils.nwu.edu!krulwich From: krulwich@ils.nwu.edu (Bruce Krulwich) Newsgroups: comp.lang.scheme Subject: Re: How to redefine a procedure (extend it) and have nobody notice Message-ID: <1347@anaxagoras.ils.nwu.edu> Date: 12 Apr 91 15:25:22 GMT References: <9104041549.AA16630@schizo> Sender: news@ils.nwu.edu Reply-To: krulwich@ils.nwu.edu (Bruce Krulwich) Organization: Institute for the Learning Sciences, Northwestern University, Evanston, IL 60201 Lines: 22 In-reply-to: gjc@mitech.COM In article <9104041549.AA16630@schizo>, gjc@mitech writes: >What did prove useful to extending the calling conventions of >a procedure was &KEY arguments. ... >Did anyone ever propose the use of &KEY return values? ... >p.s. I really think I *have* heard of somebody suggestion &KEY >in multiple return values. I just cannot remember who or when. It seems to me that this idea comes naturally if returning multiple values is thought of as simply calling a continuation with more than one argument. If you're working in CL or another LISP with keyword arguments, why shouldn't continuations have them just like all other procedures? As a side note, in this view of multiple-value returns, the functions such as RECEIVE-VALUES in T (and I suppose MULTIPLE-VALUE-CALL in CommonLISP) are simply giving an explicit continuation to pass to another procedure. Bruce Krulwich krulwich@ils.nwu.edu