Skip to content
programming languages for all
GitHub

Clojure

(println "Hello, World!")
(defn factorial [n]
  (cond
    (= n 0) 1
    (= n 1) 1
    :else (* n (factorial (- n 1)))))

(println "Enter a number:")
(try
  (let [number (Integer. (read-line))]
    (if (neg? number)
      (throw (IllegalArgumentException. "Invalid input. Please enter a non-negative integer."))
      (println (factorial number))))
  (catch NumberFormatException _ (println "Invalid input. Please enter a valid non-negative integer."))
  (catch IllegalArgumentException e (println (.getMessage e)))))