Anonymous user
Best shuffle: Difference between revisions
→{{header|Elena}}
m (→{{header|Sidef}}: minor code simplifications) |
|||
Line 1,263:
#define system'routines.
#define extensions.
#symbol shuffle = (:aLiteral)
[
#var aLength := aLiteral length.
#var aShuffled :=
control
[
#var aChar := aLiteral@i.
(aChar == (aShuffled@i)) ?
[
control
[
#var anAltChar := aShuffled@j.
((anAltChar != aChar)and:[ anAltChar != (aLiteral@i) ]and:[aChar != (aLiteral@j)]) ?
[
].
].
].
^ false.
].
^ control run:aShuffled &forEach:(Summing new:(String new)
].
#symbol scoreShuffle = (:anOriginal:aShuffled)
Line 1,298 ⟶ 1,296:
#var aScore := Integer new.
control
[ ((anOriginal @ i) == (aShuffled @ i)) ? [ aScore += 1. ]. ].
^ aScore value.
].
#symbol program =
[
control
[
#var aShuffled := shuffle:aWord.
|