Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
November 01, 2015 Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Is there a reason why Phobos doesn't contain a lazy range variant of std.string.replace? |
November 02, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Sunday, 1 November 2015 at 14:26:21 UTC, Nordlöw wrote:
> Is there a reason why Phobos doesn't contain a lazy range variant of std.string.replace?
Ping.
|
November 02, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On 11/02/2015 04:22 AM, Nordlöw wrote:
> On Sunday, 1 November 2015 at 14:26:21 UTC, Nordlöw wrote:
>> Is there a reason why Phobos doesn't contain a lazy range variant of
>> std.string.replace?
>
> Ping.
What is the use case?
The implementation doesn't seem trivial to me as it needs to maintain an internal buffer as large as the 'to' argument to do the mutation in.
Ali
|
November 02, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli | On Monday, 2 November 2015 at 19:53:09 UTC, Ali Çehreli wrote: > On 11/02/2015 04:22 AM, Nordlöw wrote: >> On Sunday, 1 November 2015 at 14:26:21 UTC, Nordlöw wrote: >>> Is there a reason why Phobos doesn't contain a lazy range variant of >>> std.string.replace? >> >> Ping. > > What is the use case? Chaining replacement with other filterings. I need in my knowledge database (graph) i building...which a *lot* of string processing. > The implementation doesn't seem trivial to me as it needs to maintain an internal buffer as large as the 'to' argument to do the mutation in. > > Ali I'm aware of that. I'm done with the easy cases at https://github.com/nordlow/justd/blob/master/algorithm_ex.d#L1946 and https://github.com/nordlow/justd/blob/master/algorithm_ex.d#L1997 I'm planning to implement the most generic version where `haystack` and keys are both ranges by reusing std.algorithm : find`. Do you have any more advice on that overload? |
November 02, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Sunday, 1 November 2015 at 14:26:21 UTC, Nordlöw wrote:
> Is there a reason why Phobos doesn't contain a lazy range variant of std.string.replace?
Would something like map work with the predicate being if(matches_needle) return replacement; else return original; ?
|
November 02, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | On Monday, 2 November 2015 at 20:25:44 UTC, Adam D. Ruppe wrote:
> On Sunday, 1 November 2015 at 14:26:21 UTC, Nordlöw wrote:
>> Is there a reason why Phobos doesn't contain a lazy range variant of std.string.replace?
>
> Would something like map work with the predicate being if(matches_needle) return replacement; else return original; ?
I'm already using `map` in the simple overloads (Range haystack, ElementType needle) mentioned in my previous post.
|
November 07, 2015 Re: Lazy std.algorithm.replace() | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | On Monday, 2 November 2015 at 20:22:11 UTC, Nordlöw wrote: > I'm done with the easy cases at > > https://github.com/nordlow/justd/blob/master/algorithm_ex.d#L1946 > > and > > https://github.com/nordlow/justd/blob/master/algorithm_ex.d#L1997 Moved stuff to https://github.com/nordlow/justd/blob/master/replacing.d for now. |
Copyright © 1999-2021 by the D Language Foundation