Skip to content

Commit 4304012

Browse files
committed
Added the mate.core/implies macro.
1 parent 8f77af0 commit 4304012

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/mate/core.cljc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
(:refer-clojure :exclude [group-by])
44
(:require [clojure.core :as cc]))
55

6+
(defmacro implies
7+
"`(implies x y)` expands to `(or (not x) y)` while being more
8+
descriptive of the logical intent."
9+
[x y]
10+
`(or (not ~x) ~y))
11+
612
(defn seq-indexed
713
"Returns an indexed sequence from the collection `coll`."
814
[coll]

test/mate/core_test.cljc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
(:require [clojure.test :refer [deftest testing is are]]
33
[mate.core :as m]))
44

5+
(deftest implies-test
6+
(is (true? (m/implies true true)))
7+
(is (false? (m/implies true false)))
8+
(is (true? (m/implies false true)))
9+
(is (true? (m/implies false false))))
10+
511
(deftest seq-index-test
612
(is (= (m/seq-indexed [:a :a :b :a :b])
713
'([0 :a] [1 :a] [2 :b] [3 :a] [4 :b]))))

0 commit comments

Comments
 (0)