Levenshtein distance
The Levenshtein distance measures the edit distance between two strings. That is, how many one-character changes do you need to make between two strings to turn one into the other. The algorithm has a nice recursive definition on Wikipedia, which makes it easy to write in Clojure.
Your goal is to implement the Levenshtein distance as a function of two strings. It should return the edit distance.
Bonus: use memoization to make it more efficient, or use an iterative method.