2
我正在学习clojure,并且遇到了似乎与我的代码无关的NullPointerException。该程序在生成错误之前运行完成。代码:简单clojure程序后发生NullPointerException
; solves the collatz conjecture
; return one step in the sequence
(defn collatz-step [n]
(if (= (rem n 2) 0)
(/ n 2)
(+ 1 (* 3 n))))
; recurse over all numbers
(defn collatz [n]
(if (= n 1)
(println "All done!")
((println (format "N = %d" n))
(collatz (collatz-step n)))))
; get input and run it
(println "Enter a positive number:")
(collatz (read-string (read-line)))
有什么我失踪了吗?
哦男人的较大值吹堆栈,非常感谢。这是完全合理的。我认为要分组多个陈述,我必须在括号中列出它们。现在我了解了解决这个问题的(do)形式。 我这么长时间都在b my我的头,再次感谢! – 2013-03-27 00:41:35
函数自动添加do,所以在这种情况下你不需要它。函数中的最后一个形式是返回值 – 2013-03-27 01:07:52