Строка в кодировке json передается в мою функцию, и мне нужно разделить эту строку на основе разделителя, а затем преобразовать первые два значения с разделителями в целые числа и назначить их переменным, которые будут использоваться внутри функции. У меня есть код, который работает, хотя мне он кажется неуклюжим.
(:use [clojure.string :only (split trim)])
(:use [clojure.data.json :only (json-str write-json read-json)])
(defn parse-int [s] (Integer. (re-find #"[0-9]*" s)))
(map parse-int (take 2
(map trim (seq (.split #"\|"
(read-json "\" 123 | 456 | 789 \""))))))
Для простоты я жестко запрограммировал входное значение сэмпла, поэтому его легко воспроизвести в REPL.
Я ожидаю результата: (123 456)
(который в моем коде назначен на (let [[a b]
)
Как я уже сказал, этот код работает, но я чувствую, что мне не хватает чего-то, что сделало бы его менее уродливым, более идиоматичным.