Sha256: 596d842391af64ffb973e19c6454e369005dc43ea1388e6e4fc98243a4ab7e0d

Contents?: true

Size: 783 Bytes

Versions: 165

Compression:

Stored size: 783 Bytes

Contents

use "itertools"

primitive Bob
  fun apply(phrase: String): String =>
    if _silent(phrase) then
      "Fine. Be that way!"
    elseif _loud(phrase) then
      "Whoa, chill out!"
    elseif _question(phrase) then
      "Sure."
    else
      "Whatever."
    end

  fun _silent(phrase: String): Bool =>
    phrase.clone() .> strip() == ""

  fun _loud(phrase: String): Bool =>
    Iter[U8](phrase.values()).all(this~_not_lowercase())
      and Iter[U8](phrase.values()).any(this~_is_letter())

  fun _not_lowercase(b: U8): Bool =>
    (b < 'a') and ('z' > b)

  fun _is_letter(b: U8): Bool =>
    (('a' <= b) and (b <= 'z')) or (('A' <= b) and (b <= 'Z')) 

  fun _question(phrase: String): Bool =>
    try
      Iter[U8](phrase.values()).last()? == '?'
    else
      false
    end

Version data entries

165 entries across 165 versions & 1 rubygems

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