我正在努力解决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吗?或者我做错了什么?
答案 0 :(得分:3)
可能与4clojure中旧版本的clojure有关。
所以clojure.string/split
留下一个空字符串作为人工制品。
该版本的clojure与当前版本存在一些差异(您可能会在以后的任务中遇到它们)
但是,你甚至不需要split
,因为在内部映射会在字符串上调用seq
,从而生成char序列。所以你只需要这样做:
#(map (fn [x] (Integer/valueOf (str x))) (str (* %1 %2)))