Скажем, у меня есть список (abcde), я пытаюсь найти "ленивый" и идиоматический способ создания списка или последовательности каждого элемента с каждым другим элементом, например ((ab) (ac) (ad) (ae) (bc) (bd) (be) (cd) (ce) (de)).
Кажется, что Clojure for не позволяет этого, он просто производит один элемент, проходя через список и не разрешая доступ к подсписку.Самое близкое, что я до сих пор сделал - это превратил исходный список в вектор, и имел оператор for, который перебирает количество векторов и захватывает проиндексированные элементы,
(для [i (диапазон векторов-счетчиков) j (диапазон i-векторов-счетчиков)] ...
но я надеюсь, что есть лучший способ.