Я думаю, что проблема в том, что вы на самом деле не можете сказать, что происходит внутри блока gather
.Вот почему этот Seq
объект говорит вам, что он не ленивый.
Возможно, это скорее вопрос документации: если is-lazy
возвращает True
, то вы можете быть уверенными , чтоSeq
(ну, на самом деле его базовая Iterator
) сама по себе не закончится.Если is-lazy
возвращает False
, это в основном означает, что мы не можем быть уверены.
Можно утверждать, что в этом случае is-lazy
должен возвращать объект типа Bool
, который также будет интерпретироваться какfalse (поскольку все объекты типа считаются False
в логическом контексте).Но это, по крайней мере, дало бы какое-то указание на то, что оно действительно не определено / неразрешимо.