прикол в том, что в момент, когда мы получаем задумку на значение, не факт что она сможет вычислиться в значение сейчас, но она при этом все еще может вычислиться в значение позже
если думать императивно, то мы тут кладем в первый элемент пары b + b, но в "первой итерации" b еще ни на какое реальное значение не ссылается, оно будет ссылаться на "второй итерации", потому что в первой мы положим в b десятку. То есть b мы получаем из будущего, мы туда положим значение после того как используем для установки первого элемента пары
Никак. Любой реализованный алгоритм всегда в итоге сводится к набору императивных команд и здесь нужно выполнить проход чтобы вычислить минимальный элемент, а затем еще один проход чтобы собрать список