Remove function?

Chris Cain clcain at uncg.edu
Wed Dec 4 15:03:08 PST 2013


On Wednesday, 4 December 2013 at 22:33:06 UTC, seany wrote:
> that works, but wont the immutability imply that the above 
> solution shall not work?

No. Essentially stripLeft and stripRight work by shrinking a 
Range by calling popFront and popBack until all of the characters 
in question are stripped. Think of it as changing what part of 
the string is "pointed to" vs changing the actual data itself. 
Since it doesn't modify the data inside, it's fine.

There is a bug in the Ali's suggestion. It's not equivalent to 
what you posted.

Consider: ((a) ... what your version implies is returning "(a" 
... but Ali's version would return "a"

Here's a version that does what (I think) you want:

----------
string stripPar(string S)
{
	while(S[0] == '(' && S[S.length-1] == ')')
	{
	
	      S = S[1 .. $ - 1];
	}

	return S;
}
----------

So, what this does is just changes the view of S, not the data of 
S. A subtle but important distinction.


More information about the Digitalmars-d-learn mailing list