解决4clojure拼图时发生NumberFormatException

时间:2016-07-21 11:36:52

标签: clojure leiningen numberformatexception

我正在努力解决4clojure问题"产品数字"。问题描述是 -

  

编写一个乘以两个数字并返回结果的函数   作为其数字序列。

     

(=(__ 1 1)[1])

     

(=(__ 99 9)[8 9 1])

     

(=(__ 999 99)[9 8 9 0 1])

这是我的解决方案 -

#(map (fn [x] (Integer/valueOf x)) (clojure.string/split (str (* %1 %2)) #""))

这在我当地完美无缺。我在lein repl& amp; emacs cider。

但同样的解决方案在4clojure网站中引发错误

  

java.lang.NumberFormatException:对于输入字符串:""

他们使用不同的repl吗?或者我做错了什么?

1 个答案:

答案 0 :(得分:3)

可能与4clojure中旧版本的clojure有关。 所以clojure.string/split留下一个空字符串作为人工制品。

该版本的clojure与当前版本存在一些差异(您可能会在以后的任务中遇到它们)

但是,你甚至不需要split,因为在内部映射会在字符串上调用seq,从而生成char序列。所以你只需要这样做:

#(map (fn [x] (Integer/valueOf (str x))) (str (* %1 %2)))