Sha256: 67f7ac38b826702b1047338785ac27cabe6782de70892999991bb3ae6a00c039

Contents?: true

Size: 533 Bytes

Versions: 242

Compression:

Stored size: 533 Bytes

Contents

use "collections"
use "itertools"

primitive Anagram
  fun apply(word: String, phrase: Array[String]): Array[String] =>
    let lower: String = word.lower()
    let sorted = _strsort(lower)

    Iter[String](phrase.values())
      .filter({(s: String)(lower, sorted): Bool =>
        let lower': String = s.lower()
        (lower != lower') and (sorted == Anagram._strsort(lower'))
      })
      .collect(Array[String])

  fun _strsort(s: String): String =>
    String.from_array(recover Sort[Array[U8], U8](s.array().clone()) end)

Version data entries

242 entries across 242 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.179 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.178 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.177 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.176 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.175 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.174 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.173 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.172 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.171 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.170 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.169 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.167 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.166 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.165 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.164 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.163 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.162 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.161 tracks/pony/exercises/anagram/example.pony
trackler-2.2.1.160 tracks/pony/exercises/anagram/example.pony