Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sample.eng.ohio-state.edu!purdue!haven.umd.edu!udel!rochester!pt.cs.cmu.edu!glinda.oz.cs.cmu.edu!mkant From: mkant@glinda.oz.cs.cmu.edu (Mark Kantrowitz) Newsgroups: comp.lang.lisp Subject: Re: Destructive Operations Message-ID: <12814@pt.cs.cmu.edu> Date: 26 Apr 91 19:07:48 GMT References: <1351@ai.cs.utexas.edu> <1991Apr25.052624.14541@Think.COM> <595@lysator.liu.se> Organization: Carnegie-Mellon University, CS/RI Lines: 13 In article <595@lysator.liu.se> bellman@lysator.liu.se (Thomas Bellman) writes: >Well, I don't know very much about CommonLisp, but in good ol' >InterLISP, there was a function called DREMOVE, which did *not* >require the user to store the result back, *even* if it had to remove >the first element. It is easy to remove the first element of a list. If I remember correctly (it's been six or seven years since I used an 1108), the InterLisp-D functions DREMOVE and DISPLACE had problems if the arguments shared list structure. This could lead to rather hideous bugs. Imagine trying to debug code and running into a circular list in the debugger. --mark