Skip to content

Instantly share code, notes, and snippets.

View podviaznikov's full-sized avatar
🗽
NYC, hacking, thinking, observing, feeling

anton podviaznikov

🗽
NYC, hacking, thinking, observing, feeling
View GitHub Profile
@podviaznikov
podviaznikov / mergesort.clj
Last active December 26, 2015 06:29
Merge sort implementation in Clojure. Merge step is recursive itself!
(defn mergestep [l r op]
(cond (empty? l) r
(empty? r) l
:else
(let [fl (first l)
fr (first r)]
(if (op fl fr)
(cons fl (mergestep (rest l) r op))
(cons fr (mergestep l (rest r) op))))))
@podviaznikov
podviaznikov / lonelyinteger.clj
Last active December 26, 2015 06:39
Find integer without a pair in the sequence. Clojure implementation.
(defn finditemwithoutpair [data]
(if (= 1 (count data))
(first data)
(if (= (first data) (second data))
(finditemwithoutpair (drop 2 data))
(first data))))
@podviaznikov
podviaznikov / quicksort.clj
Last active December 26, 2015 06:49
Quicksort implemented in Clojure
(defn qpart [data p]
(reduce (fn [acc item]
(cond
(< item p) (assoc acc :left (conj (:left acc) item))
(> item p) (assoc acc :right (conj (:right acc) item))
:else (assoc acc :ps (conj (:ps acc) item))))
{:left [] :right [] :ps []} data))
@podviaznikov
podviaznikov / gdc.clj
Created October 30, 2013 15:57
The greatest common divisor (GCD) of two integers: x and y. http://people.cis.ksu.edu/~schmidt/301s12/Exercises/euclid_alg.html. Clojure implementation.
(defn gdc [x y]
(if (= x y)
x
(if (> x y)
(recur (- x y) y)
(recur (- y x) x))))
(gdc 10, 100) ; 10
@podviaznikov
podviaznikov / fibonacci.clj
Created October 30, 2013 16:57
Fibonacci implementation on Clojure.
(defn fib-iter [a b n]
(if (zero? n)
b
(recur (+ a b) a (dec n))))
(defn fib [n]
(fib-iter 1 0 n))
(fib 40) ;102334155
Links:
* http://blog.zachorr.com/nginx-setup/
(defn pascaltriangle-iter [row col]
(if (or (= col 1) (= col row))
1
(+
(pascaltriangle-iter (- row 1) (- col 1))
(pascaltriangle-iter (- row 1) col))))
(defn pascaltriangle-row [row]
(for [i (range 1 (+ 1 row))]
(pascaltriangle-iter row i)))
Verifying myself: My Bitcoin username is +podviaznikov. https://onename.io/podviaznikov

Keybase proof

I hereby claim:

  • I am podviaznikov on github.
  • I am podviaznikov (https://keybase.io/podviaznikov) on keybase.
  • I have a public key whose fingerprint is ED55 74C1 1394 8860 7EA1 C228 879F 60AE EC4D D532

To claim this, I am signing this object: