Объяснение «Потеряй голову» в ленивых последовательностях

В языке программирования Clojure, почему этот код проходит безупречно?

(let [r (range 1e9)] [(first r) (last r)])

А вот этот:

(let [r (range 1e9)] [(last r) (first r)])

Я знаю, что он о совете «Потерять голову», но не могли бы вы объяснить его мне? Я пока не могу это переварить.

ОБНОВЛЕНИЕ:
Подобрать правильный ответ действительно сложно, два ответа потрясающе информативны.
Примечание: фрагменты кода взяты из книги "The Joy of Clojure".

19
задан Chiron 25 April 2011 в 16:14
поделиться