Sha256: a660016db827bb567acf8be4cc839a1666fca56f2b1da39da695c23877b8f301

Contents?: true

Size: 897 Bytes

Versions: 396

Compression:

Stored size: 897 Bytes

Contents

(defmodule phone
  (export (area-code 1)
          (number 1)
          (pprint 1)))

(defun zeros () "0000000000")

(defun strip-one
  (((cons 49 tail)) tail)
  (((cons _h _t))   (zeros)))

(defun parts (str)
  (let* ((number     (number str))
         (area-code  (string:sub_string number 1 3))
         (exchange   (string:sub_string number 4 6))
         (subscriber (string:sub_string number 7 10)))
    `#(,area-code ,exchange ,subscriber)))

(defun area-code (str)
  (let (((tuple area-code _ _) (parts str)))
    area-code))

(defun number (str)
  (let ((digits (re:replace str "\\D" "" `(global #(return list)))))
    (case (length digits)
      (10 digits)
      (11 (strip-one digits))
      (_  (zeros)))))

(defun pprint (str)
  (let (((tuple area-code exchange subscriber) (parts str)))
    (lists:flatten
      (io_lib:format "\(~s\) ~s-~s" `(,area-code ,exchange ,subscriber)))))

Version data entries

396 entries across 396 versions & 1 rubygems

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