> -- Vlad писал(а):
> Как только появляется понятие состояния (с которым так успешно борются в ФП), то появляется и необходимость в нулевых ссылках (указателях в терминах C++).

Хотя наличие состояния всего-лишь усугубляет ситуациюКорень, как мне кажется, в неявности разыменования. Если бы для разыменования ссылки (которая может быть нулевой) всегда требовалось указать "обработчик" для случая нулевой ссылки, то проблем стало бы меньше (осмысленный "обработчик", а не выброс какого-нибудь "null dereference"). В случае ФП это приводит к каскадному протаскиванию вверх какого-нибудь "may be" результата, от которого никак не избавиться, пока не укажешь правильный "обработчик" для этого "may be".
Когда появляется состояние, которое может быть нулевым (требует "инициализации"), то все функции для работы с этим состоянием превращаются в "may be", что совершенно непрактично. Вывод все тот-же, что и в теме про "локализацию состояния" - глобальное состояние это зло