Нет ничего особенного в оценке some
в пределах if
, и, насколько я могу судить, ваш код в порядке.Посмотрите ниже и посмотрите, можете ли вы создать нечто подобное (что мы все можем попробовать запустить сами), и это демонстрирует проблему.
Случай 1, активная доска включена в другую доску:
(def app {:boards {:activeboard 1 :otherboards [1 2 3]}})
(if (= nil (some (partial = (:activeboard (:boards app))) (:otherboards (:boards app))))
(println "some returned nil")
(println "some did not return nil"))
оценено:
>> some did not return nil
Случай 2, активная доска не включена в другую доску:
(def app {:boards {:activeboard 1 :otherboards [2 3 4]}})
(if (= nil (some (partial = (:activeboard (:boards app))) (:otherboards (:boards app))))
(println "some returned nil")
(println "some did not return nil"))
оценена:
>> some returned nil