2016-07-21 36 views
0

Ich versuche das 4clojure Problem "Product Digits" zu lösen. Die Problembeschreibung lautet -NumberFormatException tritt beim Lösen von 4clojure puzzle auf

Schreiben Sie eine Funktion, die zwei Zahlen multipliziert und das Ergebnis als Folge ihrer Ziffern zurückgibt.

(= (__ 1 1) [1])

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

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

Hier ist meine Lösung -

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

Das in meinem lokalen perfekt funktioniert gut. Ich testete in beiden leins repl & Emacs Apfelwein.

Aber die gleiche Lösung wirft einen Fehler in 4clojure Website

java.lang.NumberFormatException: Für Eingabestring: ""

sie eine andere repl verwenden Sie? Oder mache ich etwas falsch?

Antwort

3

das ist wahrscheinlich mit der älteren Version von clojure in 4clojure verbunden. So clojure.string/split lässt eine leere Zeichenfolge als ein Artefakt.

Es gibt einige Unterschiede in dieser Version von Clojure mit aktuellen, (Sie wahrscheinlich in sie in späteren Aufgaben laufen würde)

Allerdings müssen Sie nicht einmal split brauchen hier, weil Mapping intern seq auf Zeichenfolge aufruft, eine Char-Sequenz daraus machen. Sie müssen also nur Folgendes tun:

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