как быть с NULL
От: dr.who  
Дата: 31.03.04 22:46
Оценка:
Просьба высказаться, как вы относитесь к подобному заявлению.
Авторство будет указано позднее.

--------------------------------------------------
(1) A = null эквивалентно
(2) A — null = 0 (договоримся, что A — числовой тип).

Выражение (2) не имеет смысла, так как ни при каком А нельзя заранее
сказать, что оно верно.
Для некоторых арифметических выражений, однако, null вполне применим.
Hапример,
0 * null = 0
null*null >= 0
2*null — четно

и так далее.
---------------------------------------------------

01.04.04 17:41: Перенесено модератором из 'ATL/WTL' — AS — AS
Re: как быть с NULL
От: mekanik  
Дата: 01.04.04 14:46
Оценка:
Здравствуйте, dr.who, Вы писали:

DW>Просьба высказаться, как вы относитесь к подобному заявлению.

DW>Авторство будет указано позднее.

DW>--------------------------------------------------

DW>(1) A = null эквивалентно
DW>(2) A — null = 0 (договоримся, что A — числовой тип).

DW>Выражение (2) не имеет смысла, так как ни при каком А нельзя заранее

DW>сказать, что оно верно.
DW>Для некоторых арифметических выражений, однако, null вполне применим.
DW>Hапример,
DW>0 * null = 0
DW>null*null >= 0
DW>2*null — четно

DW>и так далее.

DW>---------------------------------------------------

0 * бесконечность != 0
2*PI — нечетное, в том смысле что на два нацело не делится.
Re: как быть с NULL
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.04.04 15:25
Оценка:
Здравствуйте, dr.who, Вы писали:

Ничего не понял. Что такое "ни при каком А нельзя заранее сказать, что оно верно"? Заранее до чего? До зачета?

Если A!=null, то можно вполне заранее до получения точного значения А сказать, что выражение гарантированно неверно (заметьте, это сильнее, чем "нельзя сказать 'верно'"). Если А = null, то в (2) мы получаем (null-null). Трактовка этого выражения — дело вкуса. В SQL, например, результат любой операции тождественно равен null, если один из аргументов null. Тогда null-null->null, и выражение A==null не может быть справедливо ни для каких А. Там это разруливается введением третьего состояния в логику, и (A==null)->unknown (фактически unknown это такой специальный вариант того же самого нулла. Его существование связано с тем, что в SQL отсутствует логический тип данных, из-за этого логические операторы и обычные операторы действуют в непересекающихся пространствах. Вот и null пришлось сделать отдельный).
Однако никто не мешает нам ослабить требования к операциям с null; если трактовать его как специальное значение, а не как отсутствие данных, то можно положить null-null->0, и сравнение А с нулл будет происходить вполне корректно. (В SQL приходится пользоваться оператором is null для такого сравнения).
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: как быть с NULL
От: Znow  
Дата: 01.04.04 16:09
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>В SQL, например, результат любой операции тождественно равен null, если один из аргументов null.


Не совсем правда.

<true> OR NULL = <true>
<false> AND NULL = <false>
Re[3]: как быть с NULL
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.04.04 17:05
Оценка:
Здравствуйте, Znow, Вы писали:

<true>> OR NULL = <true>
Z><false> AND NULL = <false>
Нет. никаких OR NULL или AND NULL не бывает. Бывает OR UNKNOWN и AND UNKNOWN. Вот они себя ведут именно так:
TRUE OR UNKNOWN -> TRUE
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: как быть с NULL
От: PK Sly http://www.vocord.ru/
Дата: 02.04.04 20:47
Оценка:
DW>--------------------------------------------------
DW>(1) A = null эквивалентно
DW>(2) A — null = 0 (договоримся, что A — числовой тип).

DW>Выражение (2) не имеет смысла, так как ни при каком А нельзя заранее

DW>сказать, что оно верно.
DW>Для некоторых арифметических выражений, однако, null вполне применим.
DW>Hапример,
DW>0 * null = 0
DW>null*null >= 0
DW>2*null — четно

О каком языке программирования идёт речь?
Если судить по заголовку, то кажется, что о С или С++, если по сообщению, то больше похоже на java-script.
VAX/VMS rulez!
Re: как быть с NULL
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.04.04 00:28
Оценка: +1
Здравствуйте, dr.who, Вы писали:

DW>Просьба высказаться, как вы относитесь к подобному заявлению.

DW>Авторство будет указано позднее.

DW>--------------------------------------------------

DW>(1) A = null эквивалентно
DW>(2) A — null = 0 (договоримся, что A — числовой тип).

DW>Выражение (2) не имеет смысла, так как ни при каком А нельзя заранее

DW>сказать, что оно верно.
DW>Для некоторых арифметических выражений, однако, null вполне применим.
DW>Hапример,
DW>0 * null = 0
DW>null*null >= 0
DW>2*null — четно

DW>и так далее.

DW>---------------------------------------------------

Бред то какой.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: как быть с NULL
От: KGP http://kornilow.newmail.ru
Дата: 22.04.04 12:36
Оценка:
Здравствуйте, dr.who, Вы писали:
DW>--------------------------------------------------
DW>(1) A = null эквивалентно
DW>(2) A — null = 0 (договоримся, что A — числовой тип).
То есть из A-0 = null && A-0=A -> A = null ?
вместо null можно подставить в арифметике что угодно ...

DW>Для некоторых арифметических выражений, однако, null вполне применим.

DW>Hапример,
DW>0 * null = 0
опять же ...
вместо null можно подставить в арифметике что угодно ...

DW>null*null >= 0

опять же ...
вместо null можно подставить в арифметике что угодно ...
DW>2*null — четно
А если я буду утверждать, что A*null делиться нацело на 7, то что ... ?
... << RSDN@Home 1.1.2 stable >>
Re: как быть с NULL
От: kuj  
Дата: 24.04.04 20:02
Оценка:
Здравствуйте, dr.who, Вы писали:

DW>Просьба высказаться, как вы относитесь к подобному заявлению.

DW>Авторство будет указано позднее.

DW>--------------------------------------------------

DW>(1) A = null эквивалентно
DW>(2) A — null = 0 (договоримся, что A — числовой тип).

DW>Выражение (2) не имеет смысла, так как ни при каком А нельзя заранее

DW>сказать, что оно верно.
DW>Для некоторых арифметических выражений, однако, null вполне применим.
DW>Hапример,
DW>0 * null = 0
DW>null*null >= 0
DW>2*null — четно

DW>и так далее.

DW>---------------------------------------------------

Любая операция над NULL должна давать NULL.
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.