В Num модуле, он сказал:Представляют бесконечность в модуле Num
Числа (тип NUM) произвольны точности рациональные числа, а также специальные элементы 1/0 (бесконечность) и 0/0 (не определено).
Ожидалось найти это infinity
, но не могу найти его. Я догадался, то, что я мог бы создать его вручную:
let infinity = let one = Int 1 and zero = Int 0 in one // zero
Но бомж:
Исключение: Ошибка "create_ratio бесконечное или неопределенное рациональное число".
Так, хорошо, есть эта val infinity : float
в Pervasives, давайте найдем num_from_float
. О, нет такой функции ...
Ну, кто-нибудь знает, как представлять положительную и отрицательную бесконечность с Num?
Моя проблема, то, почему он говорит, что «inifinity "и" undefined "существуют, если они не разрешены по умолчанию? Во всяком случае, хороший ответ! – Lhooq
Может быть, они должны положить в документацию Num, что некоторые действия связаны с модулем Arith_status ... – Lhooq
Да, хороший вопрос ... Хотелось бы, чтобы у меня был ответ. Вероятно, разработчики решили, что специальные номера вызывают больше проблем, чем решают. Например, когда я активно работал с float, я использовал модуль 'Float.Safe', который переопределяет все операции и терпит неудачу, если какой-либо специальный номер придет в игру. Это действительно помогло мне в отладке. И да, документация должна быть точно обновлена, не скрываясь в коде, нелегко узнать, что происходит не так. – ivg