aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-25 12:06:43 -0800
committerTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-25 12:30:49 -0800
commit5a37dbd484586b60ad2509e98e7282eb439cd58c (patch)
treef47808acac8d0b46ea2aa2d01f9bd75f3141d131
parenta608b6e2c1d3220cdc902298c23622ca900287b8 (diff)
downloadperlweeklychallenge-club-5a37dbd484586b60ad2509e98e7282eb439cd58c.tar.gz
perlweeklychallenge-club-5a37dbd484586b60ad2509e98e7282eb439cd58c.tar.bz2
perlweeklychallenge-club-5a37dbd484586b60ad2509e98e7282eb439cd58c.zip
Ch140 (Clojure): Task 1
-rw-r--r--challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj18
-rw-r--r--challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj6
2 files changed, 20 insertions, 4 deletions
diff --git a/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj b/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
index 7a33bbec1a..8de084f8c1 100644
--- a/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
+++ b/challenge-140/tyler-wardhaugh/clojure/src/tw/weekly/c140/t1.clj
@@ -3,11 +3,25 @@
;;;
; Task description for TASK #1 › Add Binary
;;;
-(def DEFAULT-INPUT [11 1])
+(def DEFAULT-INPUT ["11" "1"])
+
+(defn binstr->num
+ [s]
+ (Long/parseLong s 2))
+
+(defn num->binstr
+ [n]
+ (Long/toString n 2))
+
+(defn add-binary
+ [& binstrs]
+ (->> binstrs
+ (transduce (map binstr->num) +)
+ num->binstr))
(defn -main
"Run Task 1 with a given input A B, defaulting to the first example from the
task description."
[& args]
(let [[A B] (or args DEFAULT-INPUT)]
- ))
+ (println (add-binary A B))))
diff --git a/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj b/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
index 037e36191e..93d9b2b9de 100644
--- a/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
+++ b/challenge-140/tyler-wardhaugh/clojure/test/tw/weekly/c140/t1_test.clj
@@ -1,7 +1,9 @@
(ns tw.weekly.c140.t1-test
(:require [clojure.test :refer [deftest is testing]]
- [tw.weekly.c140.t1 :refer []]))
+ [tw.weekly.c140.t1 :refer [add-binary]]))
(deftest examples
(testing "Examples from description"
- ))
+ (is (= "100" (add-binary "11" "1")))
+ (is (= "110" (add-binary "101" "1")))
+ (is (= "111" (add-binary "100" "11")))))