LINUX.ORG.RU

История изменений

Исправление Nervous, (текущая версия) :

Усложним задачу: преобразовать строку в последовательность чисел, заменив цифры их значениями, а любые другие символы — их кодами ASCII.

(defn string-to-ints
  "Maps digits of string `s` to themselves and other characters to their ASCII codes."
  [s]
  (let [zero-code   (int \0)
        digit       (set (range 0 10))
        char-to-int (comp #(or (digit (- % zero-code)) %) int)]
    (map char-to-int s)))
(string-to-ints "-123.45e12")
;; => (45 1 2 3 46 4 5 101 1 2)

(string-to-ints "+123.45E-12")
;; => (43 1 2 3 46 4 5 69 45 1 2)

Исходная версия Nervous, :

Усложним задачу: заменить в указанной строке цифры их значениями, а любые другие символы — их кодами ASCII.

(defn string-to-ints
  "Maps digits of string `s` to themselves and other characters to their ASCII codes."
  [s]
  (let [zero-code   (int \0)
        digit       (set (range 0 10))
        char-to-int (comp #(or (digit (- % zero-code)) %) int)]
    (map char-to-int s)))
(string-to-ints "-123.45e12")
;; => (45 1 2 3 46 4 5 101 1 2)

(string-to-ints "+123.45E-12")
;; => (43 1 2 3 46 4 5 69 45 1 2)