Вам нужно, чтобы это выглядело так:
(println (displayFactorials number))
Вот более отформатированная версия программы:
(ns demo.core)
(defn displayFactorials
[number]
(if (> number 1)
(* number (displayFactorials (- number 1)))))
(defn -main []
(println "To display the factorials,")
(print " enter the number: ") (flush)
(let [number (double (read))]
(println
(displayFactorials number))))
Подсказка: Вы также забыли о том, что делать, если число равно единице.
Обновление
См. подсказку выше. Запишите модульный тест в файл test/tst/demo/core.clj
, например:
(ns tst.demo.core
(:use demo.core tupelo.test))
(deftest dummy#
(println :answer (displayFactorials 5)))
Попробуйте запустить lein test
и увидите исключение:
ERROR in (dummy#) (Numbers.java:1068)
Uncaught exception, not in assertion.
expected: nil
actual: java.lang.NullPointerException: null
at clojure.lang.Numbers.ops (Numbers.java:1068)
clojure.lang.Numbers.multiply (Numbers.java:173)
demo.core$displayFactorials.invokeStatic (core.clj:6)
demo.core$displayFactorials.invoke (core.clj:3)
demo.core$displayFactorials.invokeStatic (core.clj:6)
demo.core$displayFactorials.invoke (core.clj:3)
demo.core$displayFactorials.invokeStatic (core.clj:6)
demo.core$displayFactorials.invoke (core.clj:3)
demo.core$displayFactorials.invokeStatic (core.clj:6)
demo.core$displayFactorials.invoke (core.clj:3)
tst.demo.core$fn__18527.invokeStatic (core.clj:11)
tst.demo.core/fn (core.clj:10)
, которое должно быть BIG подсказка относительно того, чего не хватает.