Похоже, вы пришли из языка с более широким соответствием шаблонов, чем у Clojure; ((elem []) false)
- это в основном ерунда в Clojure. Вместо этого просто проверьте, является ли ilist
пустым.
Существует ряд других ошибок, поэтому вот фрагмент, который на самом деле работает, будучи максимально приближенным к тому, что вы намеревались:
(defn is_member [elem ilist]
(cond (empty? ilist) false
(= elem (first ilist)) true
:else (is_member elem (rest ilist))))