Hello! On Thursday 19 March 2009 13:37:37 Victor Wagner wrote: > > Трехзначная логика получается. И на практике, например, приходится > > Трехзначная логика - это глубокая концептуальная ошибка создателей SQL. > Логика должна быть ЧЕТЫРЕХЗНАЧНОЙ - да, нет, не знаю, не важно. > > А в SQL "не знаю" и "не важно" обозначаются одним и тем же символом.
Создав таблицу сущностей и ссылаясь на нее, можно сделать хоть пятизначную логику - "да, нет, не знаю, не важно, не уверен". Создавать предопределенные сущности есть ошибка. Надо же так извратить алгебру множеств, что в любом, даже пустом множестве есть элемент NULL, но он "не учитывается". Как, по- вашему, описывать это безобразие? Что дает пересечение двух множеств, одно из которых пустое, но оба содержат NULL - "истинное" пустое множество или пустое множество с NULL? Спасибо SQLite, автор которого знает мат. аппарат и позволил избавиться от вышеописанного безобразия. > > В чем, по-вашему, смысл приводить тиклевскую переменную к NULL при > > сохранении, чтобы потом при каждом извлечении проверять что не NULL и не > > пустая? > > А вот отсутствие значения undefined в Tcl - это концептуальные грабли, > подложенные туда лично Остерхутом. Оно меня все десять лет, которые я на > тикле программирую, раздражает. > > В perl и javascript значение undefined есть, и оно там крайне полезно. В алгебре логики есть два значения - истина/ложь и любое высказывание поддается формальным преобразованиям. Достали уже языки для программирования методом тыка, где невозможно использование мат. аппарата. Ну, не знают сейчас математику, но к счастью, Остерхут знал. Best regards.