;; From Jack Rusher ;; https://gist.github.com/jackrusher/959b35e031fb9b2d30c0211337a310ed ;; Condensed visual tutorial in #Bauhaus style for a subset of the #Clojure seq API (inspired by similar JS tweets) (def ■ '■) (def ▲ '▲) (def ● '●) (first [● ■ ▲]) ; ● (second [● ■ ▲]) ; ■ (nth [● ■ ▲] 2) ; ▲ (rest [● ■ ▲]) ; (■ ▲) (last [● ■ ▲]) ; ▲ (butlast [● ■ ▲]) ; (● ■) (map (partial = ■) [■ ● ■ ▲]) ; (true false true false) (filter (partial = ■) [■ ● ■ ▲]) ; (■ ■) (remove (partial = ■) [■ ● ■ ▲]) ; (● ▲) (distinct [■ ● ■ ▲ ● ▲]) ; (■ ● ▲) (interpose '▲ [● ● ●]) ; (● ▲ ● ▲ ●) (interleave [■ ■ ■] [▲ ▲ ▲] [● ● ●]) ; (■ ▲ ● ■ ▲ ● ■ ▲ ●) (take 3 [■ ■ ● ● ▲ ▲]) ; (■ ■ ●) (take-nth 2 [■ ■ ● ● ▲ ▲ ■ ■]) ; (■ ● ▲ ■) (take-while (partial = ■) [■ ■ ● ● ▲ ▲ ■ ■]) ; (■ ■) (drop-while (partial = ■) [■ ■ ● ● ▲ ▲ ■ ■]) ; (● ● ▲ ▲ ■ ■) (partition 2 [■ ■ ● ● ▲ ▲ ■ ■]) ; ((■ ■) (● ●) (▲ ▲) (■ ■)) (partition 2 1 [■ ■ ● ● ▲ ▲ ■ ■]) ; ((■ ■) (■ ●) (● ●) (● ▲) (▲ ▲) (▲ ■) (■ ■)) (split-at 3 [■ ■ ● ● ▲ ▲ ■ ■]) ; [(■ ■ ●) (● ▲ ▲ ■ ■)] (frequencies [■ ■ ● ● ▲ ▲ ■ ■]) ; {■ 4, ● 2, ▲ 2} (some (partial = ●) [■ ● ■ ▲]) ; true (every? (partial = ●) [■ ● ■ ▲]) ; false (every? (partial = ●) [● ● ●]) ; true