我必须对 Clojure 语言做一个简短的介绍,在其中我还必须提供简单任务的解决方案:输入一个整数 n 并输出总和:1+2^2+3^2+...+n ^2。使用输入验证 n 为正。
我以前使用 Lisp 方言或 Java 的 xp 为零,我发现这种具有挑战性。我离我有多远?(猜测很多):
(defn sum_of_squares [n]
(if (> n 0)
(def sum 0)
(dotimes [n]
(+ sum (* n n)))))
如您所见,我不知道发生了什么。我应该如何实际提示用户输入n的值,然后再打印总和?另外,整个(+ sum (* nn)表达式应该存储它的结果,在这个过程中更新 sum?
也许有很多更简单的方法可以解决这个问题,所以请随时向我展示:)。