我正在编写一个简单的 DiceRoller 应用程序并创建了主函数,但是我想知道是否有一种“智能”方法来验证 Clojure 中的函数输入,而不是使用分支条件来验证输入?我的函数在下面带有一个示例测试,我还必须测试 n 是否不是另一个 if 或 an or 的数字,并且感觉很乱。
另外,如果有人能指出一种更聪明的方法来执行此功能,我将不胜感激任何反馈,这是我第一次尝试功能性编程
(ns DiceRoller)
(defn roll
"rolls a specified number of n sided dice "
([] (roll 1 6))
([number] (roll number 6))
([number n]
(if-not number? number (throw (IllegalArgumentException. (str "incorrect input, integers only"))))
(take number (repeatedly #(+ (rand-int n) 1)))
)
)