Manipulate slice or specific element of range and return range

Seb seb at wilzba.ch
Thu Mar 22 04:49:39 UTC 2018


On Wednesday, 21 March 2018 at 11:30:28 UTC, Timoses wrote:
> Hey,
>
> I'm struggling to find a way to achieve this. I've looked 
> through std.algorithm but didn't find anything.. Maybe I'm 
> blind.
>
> What I would like to do is filter out all spaces in a string 
> and change the front letter to lower case:
>
>     string m = "My Capital String";
>     string lower = m
>         .filter!(c => c != ' ')
>         .<executeAt>!(0, c => c.toLower) // executeAt does not 
> exist
>         .array.to!string;
>     assert(lower == "myCapitalString");
>
> or sth like
>
>     m.filter!(...)
>         .map!((element, int index) {
>             if (index == 0)
>                 return element.toLower;
>             else
>                 break; // stop since we are done manipulating 
> range
>         });
>
> Anyway to do this?

No need for regular expressions. D is powerful enough without 
them:

```
alias lowercased = (m, n) => 
m.take(n).asLowerCase.chain(m.drop(n));
```

https://run.dlang.io/is/cSL0si


More information about the Digitalmars-d-learn mailing list