diff options
| author | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2022-09-02 22:29:39 -0700 |
|---|---|---|
| committer | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2022-09-03 17:51:31 -0700 |
| commit | c149e824df653422443e3eff5fa2be4954b43f86 (patch) | |
| tree | ef57aa0322b6b16b3f6557a9ff13059b9faa3867 | |
| parent | d7cc6a08e8d05f629f3d896fa199c163b4fbc425 (diff) | |
| download | perlweeklychallenge-club-c149e824df653422443e3eff5fa2be4954b43f86.tar.gz perlweeklychallenge-club-c149e824df653422443e3eff5fa2be4954b43f86.tar.bz2 perlweeklychallenge-club-c149e824df653422443e3eff5fa2be4954b43f86.zip | |
Ch180 (Clojure): Task 1
| -rw-r--r-- | challenge-180/tyler-wardhaugh/clojure/README.md | 6 | ||||
| -rw-r--r-- | challenge-180/tyler-wardhaugh/clojure/src/c180/t1.clj | 11 | ||||
| -rw-r--r-- | challenge-180/tyler-wardhaugh/clojure/test/c180/t1_test.clj | 5 |
3 files changed, 14 insertions, 8 deletions
diff --git a/challenge-180/tyler-wardhaugh/clojure/README.md b/challenge-180/tyler-wardhaugh/clojure/README.md index fa2b4d1884..97a81353be 100644 --- a/challenge-180/tyler-wardhaugh/clojure/README.md +++ b/challenge-180/tyler-wardhaugh/clojure/README.md @@ -8,12 +8,12 @@ Clojure ([installation instructions](https://clojure.org/guides/getting_started# Run Task #1: - $ clojure -M:t1 N + $ clojure -M:t1 S # ... or ... - $ bb run task-1 N + $ bb run task-1 S # Alternatively, to run it via Babashka: - $ bb run task-1-bb N + $ bb run task-1-bb S Run Task #2: diff --git a/challenge-180/tyler-wardhaugh/clojure/src/c180/t1.clj b/challenge-180/tyler-wardhaugh/clojure/src/c180/t1.clj index fc36df92d2..a07103cc41 100644 --- a/challenge-180/tyler-wardhaugh/clojure/src/c180/t1.clj +++ b/challenge-180/tyler-wardhaugh/clojure/src/c180/t1.clj @@ -1,11 +1,16 @@ (ns c180.t1 (:require [clojure.edn :as edn])) -(def DEFAULT-INPUT []) +(def DEFAULT-INPUT ["Perl Weekly Challenge"]) + +(defn first-unique-char + [s] + (let [freq (frequencies s)] + (->> s (keep-indexed (fn [i v] (when (= 1 (freq v)) i))) first))) (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)] - N)) + (let [[N] (or args DEFAULT-INPUT)] + (println (first-unique-char N)))) diff --git a/challenge-180/tyler-wardhaugh/clojure/test/c180/t1_test.clj b/challenge-180/tyler-wardhaugh/clojure/test/c180/t1_test.clj index 469e72389f..6824dff4d4 100644 --- a/challenge-180/tyler-wardhaugh/clojure/test/c180/t1_test.clj +++ b/challenge-180/tyler-wardhaugh/clojure/test/c180/t1_test.clj @@ -1,7 +1,8 @@ (ns c180.t1-test (:require [clojure.test :refer [deftest is testing]] - [c180.t1 :refer []])) + [c180.t1 :refer [first-unique-char]])) (deftest task-1 (testing "Task 1 produces the correct result" - )) + (is (zero? (first-unique-char "Perl Weekly Challenge"))) + (is (= 1 (first-unique-char "Long Live Perl"))))) |
