[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Global change to strings...



   Date:        Sun, 23 Jun 91 20:28:36 EDT
   From: CXEA000 <CXEA%MCGILLA.BITNET@cunyvm.cuny.edu>

   I have a rather embarrasingly simple question. I suspect it is a Common
   Lisp rather than a specifically MACL question- and apologize if it is.
   I have spent all afternoon with Franz's 'Common Lisp: The Language' and
   with 'Common Lisp: The Reference' AND with the MACL docs, and I still
   can not figure out how to do a global change in a Lisp string. I need to
   be able to replace every instance of (say) 'x' with (say) 'a different
   word'. Surely Lisp and/or MACl provide some means to do this with
   different length keys...but I have tried various combinations of
   'REPLACE' and 'SUBSTITUTE' and I can see that I can write a function
   which copies character by character...but surely this must be built-in
   to the language! The problem isn't doing the replacing per se; it's
   doing it so that no other part of the string is overwritten or left
   hanging after the new insertion.

   I do apologize in adding to the heavy mail with this question which must
   have a trivial answer...but I'm at my rope's end over this idiocy.

   Thanks.
			Chris


You'd think it would be built into the language, but... String
maniputlation seems like such a simple thing to do, but not nearly as
simple as you might like in CL. I think it has mostly to do with the
fact that strings are a type of vector, and if you want to change the
size of a string you need to add or remove some of the vector elements
or create a new string (vector). 

Maybe what we really need is a new class of strings that includes
methods from string manipulation and patterm matching (like
icon/snobol?). 

Sorry, I seem to have drifted from MACL,

	Darryn J Kozak

	Cray Research Park
	655F Lone Oak Drive
	Eagan, MN  55121
	USA

	dkozak@cray.com

	(612) 683-5244

	ISS (Integrated Support System) Project