Я новичок в Clojure и пытаюсь понять, почему две функции ниже отличаются.
Первая
(defn rp [i]
((println i)
(if (> i 3)
(println "bye")
(rp (inc i)))))
Вторая
(defn rp
([i] (println i)
(if (> i 3)
(println "bye")
(rp (inc i)))))
Когда я вызываю их с (rp 0)
, первый печатает
0
1
2
3
4
bye
CompilerException java.lang.NullPointerException, compiling:(/Users/...)
и второй печатает
0
1
2
3
4
bye
=> nil
Почему они разные?Почему функция first вызывает NullPointerException
?