Hi Roelof,

Maybe something like this:

String>>hammingDistanceTo: aString
        " Answer the amount of substitutions between the receiver and
aString. Both must be of equal length "

        ^ (1 to: self size) count: [ : i | (self at: i) ~= (aString at: i) ]


El lun., 14 sept. 2020 a las 16:15, Roelof Wobben via Pharo-users (<
pharo-users@lists.pharo.org>) escribió:

> Hello,
>
> I have solved the hamming challenge of exercism where I have to find in
> how many places two strings are different.
>
> my solution is :
>
> distanceStrand1: aString strand2: aString2
>      aString size == aString2 size
>          ifFalse: [ DomainError signal: (self messageFor: aString
> strand2: aString2) ].
>      ^ (1 to: aString size)
>          sumNumbers: [ :index |
>              (aString at: index) == (aString2 at: index)
>                  ifTrue: [ 0 ]
>                  ifFalse: [ 1 ] ]
>
>
> messageFor: aString strand2: aString2
>      aString notEmpty & aString2 notEmpty
>          ifTrue: [ ^ 'left and right strands must be of equal length' ].
>      aString ifEmpty: [ ^ 'left strand must not be empty' ].
>      ^ 'right strand must not be empty'
>
>
> Can this be improved?
>
> Roelof
>

Reply via email to