Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure:如何进行基本递归?_Clojure - Fatal编程技术网

Clojure:如何进行基本递归?

Clojure:如何进行基本递归?,clojure,Clojure,我试图在tryclj.com上用clojure编写一个简单的递归函数 (defn sum-to-n [n] (if (<= n 0) n (+ n (sum-to-n (- n 1))))) (定义总和到n[n] (如果( 此代码有效。请尝试查看。tryclj.com有一个“关于”链接解释此代码: 此外,如果您定义的内容太多,或在15分钟后,解释器将删除您输入的数据 如果其他东西不能按预期工作,您应该知道它使用的是一个沙箱库,它对您的操作施加了很多限制。正如评论员所说,这

我试图在tryclj.com上用clojure编写一个简单的递归函数

(defn sum-to-n [n]
  (if (<= n 0) n
      (+ n (sum-to-n (- n 1)))))
(定义总和到n[n]
(如果(

此代码有效。请尝试查看。

tryclj.com有一个“关于”链接解释此代码:

此外,如果您定义的内容太多,或在15分钟后,解释器将删除您输入的数据

如果其他东西不能按预期工作,您应该知道它使用的是一个沙箱库,它对您的操作施加了很多限制。正如评论员所说,这在Clojure repl或编译程序中效果很好

您还应该检查其他事项:
重复执行
尾部递归以避免堆栈崩溃,
dec
/
inc
pos?
zero?
neg?
以获得更具可读性的检查。当然,您知道此特定函数不需要递归。您可以将其编写为:

 (defn sum-to-n [n]
     (quot (* n (inc n)) 2))

这是一个try-clj问题,我不知道到底是什么

(定义f[]1)

‘沙盒8136/f (f) java.lang.IllegalStateException:尝试调用未绑定的fn:#'sandbox8136/f


tryclj.com随机清除所有定义的状态,您只需重新输入定义。此外,如果可能,最好使用
recur
(此处适用),但这与此错误无关。你的函数在a中对我起作用。Trycj可能是在试图避免恶意递归。Trycj.com对我起作用很好。但我知道问题:有时基本的东西似乎随机地在Trycj.com中不起作用。@sloth我只是复制并粘贴了它,现在就成功了worked@mikeyhew我曾经有一个问题,那张地图我创建的s
(def m{:foo:bar}
在函数
(一些函数m)
中不起作用。我现在大部分时间只是使用本地REPL。
 (defn sum-to-n [n]
     (quot (* n (inc n)) 2))