Я не уверен, что кто-то написал это именно так, но вам нужно понять следующее:
В наборе нет "первого" элемента.
Потому что, как говорили другие, декорации не имеют порядка. Набор - это математическая концепция, которая конкретно не включает упорядочение.
Конечно, ваш компьютер не может хранить список вещей, которые не упорядочены в памяти. Это должно иметь некоторый порядок. Внутренне это массив или связанный список или что-то. Но вы на самом деле не знаете, что это такое, и у него нет первого элемента; элемент, который выходит «первым», появляется таким образом случайно и может быть не первым в следующий раз. Даже если вы предприняли шаги, чтобы «гарантировать» конкретный первый элемент, он все-таки вышел случайно, потому что вы просто получили его правильно для одной конкретной реализации набора; другая реализация может не работать таким образом с тем, что вы сделали. И, на самом деле, вы можете не знать, какую реализацию вы используете, так, как вы думаете.
Люди сталкиваются с этим ВСЕМ. . ВРЕМЯ. с системами RDBMS и не понимаю. Запрос RDBMS возвращает набор записей. Это тот же тип набора из математики: неупорядоченный набор элементов, только в этом случае элементы являются записями. Результат запроса СУБД вообще не имеет гарантированного порядка, если только вы не используете предложение ORDER BY, но все время люди предполагают, что он это делает, а затем когда-нибудь теряют самообладание, когда форма их данных или кода слегка меняется и запускает работу оптимизатора запросов другой путь, и внезапно результаты оказываются не в том порядке, в котором они ожидают. Как правило, это люди, которые не обращали внимания в классе базы данных (или при чтении документации или учебных пособий), когда им заранее объясняли, что результаты запроса не имеют гарантированного порядка.