Question: I'm working through Clojure Koans and I'm up to the recursion koans.

I don't understand how to solve `is-even?` using recursion. The exercise partially defines this function as:

```
(defn is-even? [n]
    (if (= n 0)
        true
        (__ (is-even? (dec n)))))

```

If I don't want to use recursion then I would define it as `(defn is-even? [n] (= (mod n 2) 0))` but that goes against the point of the exercise.

Answer: 
Like amalloy said, fill the blanks with "not". But provided you assume the argument can only be 0 or positive, you don't need another base case: `dec` makes sure you always end up at 0, and odd numbers return false like this:

```
(is-even? 0) ==> base case (= 0 0) ==> true.
(is-even? 1) ==> (not (is-even? (dec 1))
             ==> (not (is-even? 0))
             ==> (not true)
             ==> false
(is-even? 2) ==> (not (is-even? 1))
             ==> (not false)
             ==> true

```

etcetera.
Consider decrementing by 2 for each recursion. The rest should be obvious: The number is even only if the function ends up with zero.

EDIT: Apparently I missed the memo about filling in the blank. Here is the tail call optimizable solution I had in mind for positive integers:

```
(defn is-even? [n]
    (if (<= n 1)
        (= n 0)
        (is-even? (- n 2))))

```