Re: Using std.algorithm.iteration to Calculate Hamming Distance

2019-06-23 Thread Samir via Digitalmars-d-learn

On Sunday, 23 June 2019 at 13:29:25 UTC, KnightMare wrote:

zip( "hello world", "Hello World" ).map!"a[0] != a[1]".sum


Excellent!  Thank you!


Re: Using std.algorithm.iteration to Calculate Hamming Distance

2019-06-23 Thread KnightMare via Digitalmars-d-learn

On Sunday, 23 June 2019 at 13:10:51 UTC, Samir wrote:
D already has a function to calculate the Levenshtein 
distance[1].  I am trying to come up with a function to 
calculate the Hamming distance[2] between two strings, `a` and 
`b`.  So far, this seems to work:


foreach (i, j; zip(a, b)) {
if (i != j)
++hammingDistance;
}


zip( "hello world", "Hello World" ).map!"a[0] != a[1]".sum




Using std.algorithm.iteration to Calculate Hamming Distance

2019-06-23 Thread Samir via Digitalmars-d-learn
D already has a function to calculate the Levenshtein 
distance[1].  I am trying to come up with a function to calculate 
the Hamming distance[2] between two strings, `a` and `b`.  So 
far, this seems to work:


foreach (i, j; zip(a, b)) {
if (i != j)
++hammingDistance;
}

Is there a way to use any of the std.algorithm.iteration[3] 
algorithms such as `filter` or `map` to do this as well?


[1] 
https://dlang.org/phobos/std_algorithm_comparison.html#levenshteinDistance

[2] https://en.wikipedia.org/wiki/Hamming_distance
[3] https://dlang.org/phobos/std_algorithm_iteration.html