Здравствуйте, Mr.Cat, Вы писали:
T>>>>Bottom — это и не завершимость тоже. Циклический вызов функциями друг друга в бесконечном цикле — тоже bottom. А порождения throw some_value не даёт.
MC>>>Изначально мы говорили о противоречии. А незавершающиеся вычисления противоречием не являются. Противоречие — это когда мы доказали что-то чего доказать не должны были.
T>>Это и есть противоречие.
MC>"Это" — это что? Незавершающиеся вычисления? Ну если ты сможешь доказать, что они не завершатся — тогда, я считаю, можно о каком-то противоречии говорить.
Так охота послать тебя изучать теорию.
Ещё раз: я могу использовать незавершающиеся вычисления в качестве адекватной замены противоречию. Как из A&!A можно доказать что угодно, так и x = x может быть подставлено куда угодно для формирования доказательства чего угодно.
MC>Кстати, в том же хаскеле явное использование undefined (ок, если хочешь, будем говорить о нем как о вычислениях, незавершимость которых доказана) как раз приводит к исключению, если вдруг потребуется его значение.
Ух ты! Что это должно доказывать?
А если я определю undefined = undefined, то что будет?
MC>Так что я продолжаю настаивать на том, что противоречие — это исключение.
Противоречие — это то, что позволяет получить противоречивые модели.
T>>Так что Лисп ничему не учит.
MC>Ты так часто это повторяешь, что я начинаю сомневаться, что ты в это веришь.
Ещё раз: Лисп ничему не учит.
К сожалению, повторение — практически единственный универсальный способ обучения.
Я это повторяю не потому, что верю, а для того, чтобы у тебя в мозгах осталась хотя бы такая простая мысль.
Я её пытаюсь подтвердить аргументами, но это на тебя оказывает очень небольшое воздействие. Думаю, что простое повторение "Лисп ничему не учит" будет проще и выгодней.