aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <twardhaugh@cap-rx.com>2021-08-19 16:50:48 -0700
committerTyler Wardhaugh <twardhaugh@cap-rx.com>2021-08-20 10:24:48 -0700
commitc59cc827374bbf39f4e0c999aa73c86667541210 (patch)
treee4bb38122d874a2f86e85e1f63ecdb7aacec8822
parent02b345b78a2d9e5f3e6b56bb87e5508057512f0d (diff)
downloadperlweeklychallenge-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.clj15
-rw-r--r--challenge-126/tyler-wardhaugh/clojure/test/tw/weekly/c126_test.clj9
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)))))