diff options
| author | Tyler Wardhaugh <twardhaugh@cap-rx.com> | 2021-08-19 16:50:48 -0700 |
|---|---|---|
| committer | Tyler Wardhaugh <twardhaugh@cap-rx.com> | 2021-08-20 10:24:48 -0700 |
| commit | c59cc827374bbf39f4e0c999aa73c86667541210 (patch) | |
| tree | e4bb38122d874a2f86e85e1f63ecdb7aacec8822 | |
| parent | 02b345b78a2d9e5f3e6b56bb87e5508057512f0d (diff) | |
| download | perlweeklychallenge-club-c59cc827374bbf39f4e0c999aa73c86667541210.tar.gz perlweeklychallenge-club-c59cc827374bbf39f4e0c999aa73c86667541210.tar.bz2 perlweeklychallenge-club-c59cc827374bbf39f4e0c999aa73c86667541210.zip | |
Ch126 (Clojure): Task 1
| -rw-r--r-- | challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj | 15 | ||||
| -rw-r--r-- | challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj | 9 |
2 files changed, 20 insertions, 4 deletions
diff --git a/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj b/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj index fb03cd9b88..54531042fb 100644 --- a/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj +++ b/challenge-126/tyler-wardhaugh/clojure/src/tw/weekly/c126/t1.clj @@ -1,14 +1,23 @@ (ns tw.weekly.c126.t1 - (:require [clojure.edn :as edn])) + (:require [clojure.edn :as edn] + [clojure.string :as str] + [clojure.pprint :refer [cl-format]])) ;;; ; Task description for TASK #1 › Count Numbers ;;; -(def DEFAULT-INPUT []) +(def DEFAULT-INPUT [15]) + +(defn count-numbers + [n] + (let [xf (remove #(str/includes? (str %1) "1")) + ed (eduction xf (range 2 (inc n))) + msg "There are ~a numbers between 1 and ~a that don't contain digit 1.~%~{~a~^, ~}"] + (cl-format nil msg (count (seq ed)) n ed))) (defn -main "Run Task 1 with a given input N, defaulting to the first example from the task description." [& args] (let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)] - )) + (println (count-numbers N)))) diff --git a/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj b/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj index e234c0c841..9e7089159c 100644 --- a/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj +++ b/challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj @@ -1,4 +1,11 @@ (ns tw.weekly.c126-test (:require [clojure.test :refer [deftest is testing]] - #_[tw.weekly.c126.t1 :refer []] + [tw.weekly.c126.t1 :refer [count-numbers]] #_[tw.weekly.c126.t2 :refer []])) + +(deftest task-1 + (testing "Task 1, Count Numbers" + (is (= "There are 8 numbers between 1 and 15 that don't contain digit 1.\n2, 3, 4, 5, 6, 7, 8, 9" + (count-numbers 15))) + (is (= "There are 13 numbers between 1 and 25 that don't contain digit 1.\n2, 3, 4, 5, 6, 7, 8, 9, 20, 22, 23, 24, 25" + (count-numbers 25))))) |
