Clojure multi-method

sort of pattern matchie

(defmulti fib identity)
(defmethod fib 0 [x] 0)
(defmethod fib 1 [x] 1)
(defmethod fib :default [n] (+ (fib (- n 2)) (fib (- n 1))))