src/caves/utils.clj @ d8b58bf5f166

Radial messages, and styling.
author Steve Losh <steve@stevelosh.com>
date Wed, 18 Jul 2012 14:00:55 -0400
parents f5fdc662f11f
children 3152de9c4d38
(ns caves.utils)


; lolclojure
(defn abs [i]
  (if (neg? i)
    (- i)
    i))


(defn map2d
  "Map a function across a two-dimensional sequence."
  [f s]
  (map (partial map f) s))

(defn slice
  "Slice a sequence."
  [s start width]
  (->> s
    (drop start)
    (take width)))

(defn shear
  "Shear a two-dimensional sequence, returning a smaller one."
  [s x y w h]
  (map #(slice % x w)
       (slice s y h)))


(defn enumerate [s]
  (map vector (iterate inc 0) s))