to compose or hack?

Sebastiaan Koppe mail at skoppe.eu
Wed Jul 7 19:52:30 UTC 2021


On Wednesday, 7 July 2021 at 13:30:28 UTC, Steven Schveighoffer 
wrote:
> On 7/7/21 5:54 AM, rassoc wrote:
>> On Wednesday, 7 July 2021 at 01:44:20 UTC, Steven 
>> Schveighoffer wrote:
>>> So I have this situation where I need to split a string, then 
>>> where the splits are, insert a string to go between the 
>>> elements making a new range, all without allocating 
>>> (hopefully).
>>>
>> 
>> Without considering the more general case, isn't that just 
>> splitter-joiner?
>
> No, splitter-joiner would make a range of characters, I want a 
> range of strings.

Just lift each item in a range then:

```d
import std;

auto foo(string s, string sp, string j) @nogc {
      return s.splitter(sp).map!(i => only(i)).joiner(only(j));
}

void main() {
      foo("ab,cd,ef,gh", ",", "##").writeln; // => ["ab", "##", 
"cd", "##", "ef", "##", "gh"]
}
```


More information about the Digitalmars-d-learn mailing list