Skip to content

Instantly share code, notes, and snippets.

@zahardzhan
Created March 14, 2010 03:43
Show Gist options
  • Save zahardzhan/331757 to your computer and use it in GitHub Desktop.
Save zahardzhan/331757 to your computer and use it in GitHub Desktop.
(ns ack)
(in-ns 'ack)
(defn pow [x y]
(if (zero? y) 1
(reduce * (repeat y x))))
(defn up [a n b]
(cond (= n 1) (pow a b)
(= b 0) 1
:else (recur a (dec n)
(up a n (dec b)))))
(defn a [m n] ;; not for all ms and ns
(cond (zero? n) (a (dec m) 1)
:else (- (up 2 (- m 2) (+ n 3)) 3)))
;; (a 4 3) - ?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment