-
Notifications
You must be signed in to change notification settings - Fork 5
/
04_sets.clj
27 lines (21 loc) · 896 Bytes
/
04_sets.clj
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(ns koans.04-sets
(:require [koan-engine.core :refer :all]))
(meditations
"You can create a set by converting another collection"
; (= #{3} (set __))
(= #{3} (set '(3)))
"Counting them is like counting other collections"
; (= __ (count #{1 2 3}))
(= 3 (count #{1 2 3}))
"Remember that a set is a *mathematical* set"
; (= __ (set '(1 1 2 2 3 3 4 4 5 5)))
(= #{1 2 3 4 5} (set '(1 1 2 2 3 3 4 4 5 5)))
"You can ask clojure for the union of two sets"
; (= __ (clojure.set/union #{1 2 3 4} #{2 3 5}))
(= #{1 2 3 4 5} (clojure.set/union #{1 2 3 4} #{2 3 5}))
"And also the intersection"
; (= __ (clojure.set/intersection #{1 2 3 4} #{2 3 5}))
(= #{2 3} (clojure.set/intersection #{1 2 3 4} #{2 3 5}))
"But don't forget about the difference"
; (= __ (clojure.set/difference #{1 2 3 4 5} #{2 3 5})))
(= #{1 4} (clojure.set/difference #{1 2 3 4 5} #{2 3 5})))