2016-07-21 46 views
0

我想解决4clojure问题“产品数字”。问题描述是 -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)) #"")) 

这在我的本地工作完全正常。我测试了两个emacs苹果酒的lein repl &。

但相同的解决方案抛出4clojure网站上有错误

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

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

回答

3

这可能是与4clojure旧版本的Clojure的连接。 因此clojure.string/split留下一个空字符串作为制造品。

有在该版本与当前者的Clojure的一些差异(你可能会在以后的任务碰上他们)

但是,你甚至不需要split在这里,因为映射在内部串的呼叫seq,制作它的字符序列。所以,你只需要做到这一点:

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