Я читаю объяснения на rest vs следующий в clojure. Как я понимаю, он разбивается на next
, оценивая/реализуя хвост последовательности, , чтобы знать, что он должен возвращать nil
или нет, а rest
всегда возвращает последовательность, поэтому она более ленивая.следующий и отдых в clojure
Однако я не понимаю, что это: обе функции должны знать, что есть что-то в хвосте. Один вернет nil
, если ничего не останется, другой вернет ()
.
В общем, им нужно проверить/оценить, что осталось. Причина, даже rest
, чтобы вернуть ()
, необходимо знать, что она не вернется, например, (2)
.
Так что даже rest
необходимо выполнить оценку.
Но объяснения говорят об обратном. это только next
. Эта оценка, но rest
не делает, поэтому лже.
Может ли кто-нибудь объяснить?
Я думаю, что получил. Clojure на самом деле удивительно просто. –