В Python я могу это сделать:Перечислить последовательность в Clojure?
animals = ['dog', 'cat', 'bird']
for i, animal in enumerate(animals):
print i, animal
Какие выходы:
0 dog
1 cat
2 bird
Как бы я сделать то же самое в Clojure? Я рассмотрел использование такого списка:
(println
(let [animals ["dog" "cat" "bird"]]
(for [i (range (count animals))
animal animals]
(format "%d %d\n" i animal))))
Но это печатает каждую комбинацию числа и животных. Я предполагаю, что есть простой и элегантный способ сделать это, но я этого не вижу.
heh. Взгляните на исходный код для индексируемой функции: https://github.com/clojure/clojure-contrib/blob/b8d2743d3a89e13fc9deb2844ca2167b34aaa9b6/src/main/clojure/clojure/contrib/seq.clj#L51 – Leonel
heh. Я знаю. Интересно, почему вы назвали функцию «enum» в вашем примере, а затем :-) – ordnungswidrig