Sha256: 88ad4134df5c73090b6e9ad39da1bdbbbd70a528f7e39301625288815fc3f460

Contents?: true

Size: 479 Bytes

Versions: 142

Compression:

Stored size: 479 Bytes

Contents

fun clean text =
  let
    fun valid (#"0" :: _) = false
      | valid (#"1" :: _) = false
      | valid digits      = List.nth (digits, 3) > #"1"
        
    fun check digits =
      case length digits of
        10 => if valid digits
              then SOME (implode digits)
              else NONE
      | 11 => if hd digits = #"1"
              then check (tl digits)
              else NONE
      | _  => NONE
  in
    check (List.filter Char.isDigit (explode text))
  end

Version data entries

142 entries across 142 versions & 1 rubygems

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