Здравствуйте, vdimas, Вы писали:
V>Сказал же — нарушение LSP.
Ну так его там нет.
V>Ты его нарушаешь через явный if.
Нет.
V>С этим сразу на пересдачу, почему нельзя так делать. ))
Кто вам такое сказал?
V>Ты давай конкретней, плиз, а то сии эмоции "я очень-очень считаю, что вы очень-очень неправы" — позиция безумца.
Конкретно: в примере нет нарушения LSP. Вы его видите — докажите, что оно есть.
V>Фуф... Ты на моей памяти делал эту ошибку уже много раз, и продолжаешь совершать одну и ту же ошибку — у тебя тут НЕТ чистой алгебраической системы типов, коль ссылочные типы данных отделяются явным образом от нессылочных из-за мутабельности данных и отсутствия GC.
Это совершенно неважно. Ссылочный тип в Algole W позволяет перечислять варианты того, на что ссылается — это и есть алгебраический тип.
V>Сосредоточься, плиз: в иммутабельной алгебраической системе типов с GC ссылочная семантика неотличима от семантики значений! А раз нет ссылочной семантики, то неоткуда взяться null! 
Это совершенно нерелевантное рассуждение, т.к. в Algol W не было иммутабельной алгебраической системы типов.
V>Плюс система типов открыта, т.е. даже полноту диспетчеризации ПМ в общем случае гарантировать невозможно.
Да где ж она открыта-то? Вы спецификацию читали?
V>LSP ведь очень прост, и как раз абстрактный итератор — один из наилучших примеров следования этому принципу.
V>Не-не-не, проги глючат даже в защищённой памяти вовсе не из-за null (бо по null честный вылет), а из-за обращения к мусорным адресам — к удалённым объектам или за пределы массивов, в т.ч. "условных" массивов, т.е. динамически выделенных "просто участков памяти".
Существование другой ошибки не означает, что первой нет. В Algol W к мусорным данным обратиться было невозможно.
V>А по null уже лет 30 никуда обратиться невозможно.
V>Но ошибки на хреналлиарды продолжают происходить!
Вот именно, т.к. проблема не в том, что мы "прочитаем из null что-то неверное", а в том, что программа упадёт в рантайме. И это будет нам стоить денег.
V>Ты никогда не писал на Фортране или Бейсике?
V>Ил просто на Паскале без динамического выделения памяти? ))
Ну так в Algol-то было динамическое выделение памяти.
S>>http://i.stanford.edu/pub/cstr/reports/cs/tr/68/98/CS-TR-68-98.pdf
V>По ссылке у тебя некая альтернативная реализация Algol W, где прямо указаны отличия от спецификаций Хоара и Вирта.
Да? Процитируйте же эти отличия.
И заодно можете показать техническое описание оригинальной реализации Вирта, в которой осознанно отказались от сборки мусора.
V>Но только зачем ты столько бегал, если чуть более поздний Algol 68 уже требовал сборку мусора прямо по своей спецификации?
Потому, что Хоар ссылался именно на Algol W.
V>Зато Algol W в своей спецификации сборку мусора не требовал.
V>Есть же вики:
V>https://en.wikipedia.org/wiki/ALGOL_W
V>Есть другие ресурсы:
V>https://grokipedia.com/page/ALGOL_W
V>Ну и как ты собрался что-либо "доказывать" при таких вводных?
Да я-то легко — приводя, к примеру, ссылки на спецификации.
V>Это ж натуральное безумие...
S>>Смешно.
V>Местами смешно, конечно.
V>Но когда упоротость переходит границы здравого смысла, то уже досадно за потраченное время.
V>Ну пусть тогда будет просто порка сугубо как напоминание остальным, что надо быть (а) тщательнее и (б) уметь вовремя остановиться, если вдруг пошёл не туда. ))
Совершенно с вами согласен. Вот вам всё уже принесли и объяснили на пальцах — нет, вы упорствуете. Аргументируете одно заблуждение другим — и по нарастанию бредовости.
Вместо того, чтобы написать "да, я опростоволосился, в Algol W была сборка мусора и способ отличить запись-заглушку от настоящей записи", вы продолжаете выдумывать альтернативную реальность.
Вас уже ткнули носом в спеку исходной реализации Алгола — но нет, не в коня корм. Вы всё ещё думаете, что можно рассуждать на темы, в которых ничего не понимаете, путём беглого чтения одностраничных статеек из википедии.
Удачи. Отвечать вам далее не буду, т.к. у меня есть более интересные занятия, чем спорить с идиотами, да ещё и об очевидном.