В следующем коде Clojure (1.2) печатает неправильное сообщение:
(try
(let [value "1,a"]
(map #(Integer/parseInt %) (.split value ",")))
(catch NumberFormatException _ (println "illegal argument")))
Это должно вывести «недопустимый аргумент», но вместо этого оно печатает (1#<NumberFormatException java.lang.NumberFormatException: For input string: "a">
.
Что я делаю не так?
Это из-за ленивой последовательности, возвращаемой map
?Как это должно быть написано?