Я пытался решить эту проблему
и я понял, что это утверждение дало результат как ложный.
(= (#(into [] (distinct %)) [1 2 3])
'(1 1 2 2 3 3))
Предполагается, что это правда, поскольку функция также возвращает тот же вектор.
Может кто-нибудь объяснить мне, почему это ложь?
Проблема заключается в том, чтобы вы написали функцию, дублирующую каждый элемент последовательности. distinct
работает в обратном направлении, удаляя дубликаты.
Из комментариев я узнал, что неправильно использовал отдельный метод, и поэтому решил использовать метод повторения, чтобы получить ответ, который был:
mapcat #(repeat 2 %)
Вопрос, который вы задаете, не имеет отношения к проблеме, на которую вы ссылаетесь, которую решает ваш собственный ответ. Глядя только на вопрос...
distinct
неправильно
последовательность.=
к любым двум последовательностям. У вас нет
чтобы преобразовать ленивую последовательность, которую производит distinct
, в вектор.Таким образом, достаточно следующего...
(= [1 2 3] (distinct '(1 1 2 2 3 3)))
=> true
Вы используете
distinct
против[1 2 3]
не на'(1 1 2 2 3 3)