> С NaN аналогично же. Условились, что NaN - это все единички в
> показателе и не ноль в мантиссе.сомнений в этом нет, если принято за стандарт.
> При этом он считается значением ссылочного типа. Так же дело
> обстоит и с NaN
А вот тут собственно ошибка рассуждения, поясню щас. Не правильно говорить "Он считается", нужно говорить "Он определяется типом". Опять таки, машина ничего не знает о типах, типами оперирует формальный язык. 32-мя машинными битами можно представить любой тип в формальном языке. Формальный язык решает где и как использовать то или иное определение одного и того же (по длине) набора конечной последовательности битов. С точки зрения теории типов (иерархии) - "не ссылка" (NULL address), то же "не число" (NaN) и т.д. в формальном языке должны быть определены собственными типами (по моему мнению, можете не согласиться).
> Ветка начиналась
> с того, что в JS типом NaN выдаётся number - но
> тут опять же выходит, что number - это название типа данных,
Нет, не с этого началась ветка, мои "претензии" были к коменту товарища Пох
"Не, ну с 11 все понятно, а что с NaN-то тебе не так? Норм жеж число?!"
и касалось вот этой его части "Норм жеж число?!", то есть как я понял NaN это оказалось число. На что я в ответ написал определение самого NaN, что это состояние "не число", то есть последовательность битов которая считается "не числом".
Далее в коменте ниже написали такое:
"Ну в других языках этот ваш NaN имеет вполне себе числовой тип float/double"
Тут собственно вопрос, а какое имеет отношение формальный "тип" к состоянию "не число"? И аргументировал, что это состояние ничем не отличается от понятия флага, и это состояние можно было бы выразить (определить, точнее представить) любым количеством битов. Отсюда получается такая картина:
"Норм жеж число?!", "имеет вполне себе числовой тип float/double"
И получается, что NaN оказывается число, потому-что у него числовой тип float/double. Верно ли это утверждение?
> Можно придираться, что NaN - не число, но только фактически-то что с того?
Хмммм, NaN и есть по определению "не число", вы с этим не согласны? А то, что NaN представлен в формальном языке одним из допустимых числовых значений типа float/double, не говорит о том, что это есть число в прямом смысле слова, то есть применить к нему арифметику и т.д. Все в машине представляется числами, повторю те же 32 бита представляйте как хотите, применяйте любые действия над ними, потому-что в ней нет формальных типов, есть только длины последовательностей.
> Отдельный тип данных
> под NaN городить? Или назвать числовой тип не number?
выше я по этому поводу написал, по моему мнение, в формальном языке да для таких случаев должен быть конкретно определен свой тип. Но не настаиваю, надо обратиться к Б. Расселу, я склоняюсь к тому, что он согласился бы со мной.
> Вообще, я тут вспомнил, собственно-то и сами по себе значения float/double "чисельные"
так все, если на то пошло - "чисельное" :) (смешное слово)
> Числовые типы в программировании с математическим действительным числом далеко не полностью соотносятся
надо просто понять, что есть тип.