2016-07-21 11 views
0

4clojureの問題「Product Digits」を解決しようとしています。問題の説明は -4clojure puzzleを解決する際にNumberFormatExceptionが発生します

2つの数字を乗算し、結果の数字を数字のシーケンスとして返す関数を書く。

(=(__ 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 & emacsサイダーでテストしました。

しかし、同じソリューションは4clojureサイトでエラーがスローされます

java.lang.NumberFormatException:入力文字列の場合: ""

は、彼らが別のREPLを使用していますか?または私は何か間違っているのですか?

答えて

3

これはおそらく4clojureの古いバージョンのclojureに接続されています。 したがってclojure.string/splitは、アーティファクトとして空の文字列を残します。

は、マッピングは、内部の文字列にseqを呼び出すため

はしかし、あなたも、ここsplitを必要としない(おそらく後でタスクでそれらに実行されます)現在のものとはClojureのバージョンではいくつかの違いがありますその文字シーケンスを作成します。したがって、これを行うだけです:

#(map (fn [x] (Integer/valueOf (str x))) (str (* %1 %2))) 
関連する問題