Clojure'эквивалент Python's encode('hex')и decode('hex& #39;)

Существует ли идиоматический способ кодирования и декодирования строки в Clojure как шестнадцатеричной? Пример из Python:

'Clojure'.encode('hex')
# ⇒ '436c6f6a757265'
'436c6f6a757265'.decode('hex')
# ⇒ 'Clojure'

Чтобы продемонстрировать некоторые усилия с моей стороны:

(defn hexify [s]
  (apply str
    (map #(format "%02x" (int %)) s)))

(defn unhexify [hex]
  (apply str
    (map 
      (fn [[x y]] (char (Integer/parseInt (str x y) 16))) 
      (partition 2 hex))))

(hexify "Clojure")
;; ⇒ "436c6f6a757265"

(unhexify "436c6f6a757265")
;; ⇒ "Clojure"
13
задан Zaz 12 May 2015 в 23:49
поделиться