0
(defn mapset [func ele]
  (loop [elements ele
         result []]
    (if (empty? elements)
      (set result)
      (let [[first-value & another] elements]
        (into result (func first-value))
        (recur another result)))))

(def v [1 2 3 4 5])
(mapset + v)

Ошибка при попытке запустить:

Don't know how to create ISeq from: java.lang.Long
Hive
  • 138

1 Answers1

0

Прочитайте документацию к into.

Второй аргумент может быть коллекцией или трансдьюсером, но никак не числом.

Поскольку добавить вы хотите не коллекцию элементов, а только один, то вам into не нужен вовсе. На самом деле вам нужна функция conj.

У вас там есть ещё одна логическая ошибка, связанная с иммутабельностью векторов. И из-за неё ваша функция mapset сейчас эквивалентна (constantly #{}). В чём именно заключается ошибка, предлагаю найти самостоятельно.