Implementations of spaced repetition algorithms in Clojure