Is there library to do in place modification of dynamic arrays?

monkyyy crazymonkyyy at gmail.com
Fri Dec 19 13:23:36 UTC 2025


On Friday, 19 December 2025 at 12:21:16 UTC, Brother Bill wrote:
> I notice that std.algorithm and std.algorithm.mutate return a 
> new dynamic array.
> Are there any libraries out there that do modifications in 
> place?

mutation is a big no no for the range concept as pushed by aa; 
whats in the compiler is just some checks you have the right 
function names tho.

I have a concept of a mutmap :

```d
import std;
auto mutmap(alias F,R)(R r){
	struct map{
		R r;
		auto ref front()=>r.front;
		void popFront(){
			r.popFront;
				if(r.empty){return;}
				r.front=F(r.front);
		}
		bool empty()=>r.empty;
	}
         r.front=F(r.front);
	return map(r);
}
unittest{
	auto foo=[1,2,3,4,5];
	foo.mutmap!(a=>a+1).each!writeln;
	auto bar=foo.mutmap!(a=>a*2).find!(a=>a==6);
	foo.writeln;
	bar.each!writeln;
}

```

you can just do things, but when you open this pandoras box you 
have to know whats going on with the underlining algorithms


More information about the Digitalmars-d-learn mailing list