Я определил следующие 3 функции, используя leiningen REPL:
(defn rand-int-range [floor ceiling] (+ floor (rand-int (- ceiling floor))))
(defn mutate-index
"mutates one index in an array of char and returns the new mutated array"
[source idx]
(map
#(if (= %1 idx)
(char (+ (int %2) (rand-int-range -3 3)))
%2)
(iterate inc 0)
source))
(defn mutate-string
[source]
(str
(mutate-index
(.toCharArray source)
(rand-int (alength (.toCharArray source))))))
Когда я запускаю (mutate-string "hello")
, вместо REPL печатает измененную строку, он печатает clojure.lang.LazySeq @xxxxxx, где "xxxxx" представляет собой случайную последовательность чисел и букв. Я бы ожидал, что вместо этого он напечатает что-то вроде "hellm". Это действительно возвращает мне строку, как я думаю? Если да, как я могу заставить REPL показать мне эту строку?