Spec-Zone.ru › Haskell 9

6.9.4. Целочисленные литералы, выглядящие как дробные

NumDecimals
Since:

7.8.1

Разрешает использование научной записи, заимствованной из синтаксиса литералов с плавающей точкой, для целочисленных типов.

Haskell 2010 и Haskell 98 определяют литералы с плавающей точкой с синтаксисом 1.2e6, напоминающим научную запись. Эти литералы имеют тип Fractional a => a.

Расширение языка NumDecimals позволяет также использовать научную запись и синтаксис литералов с плавающей точкой для экземпляров Num, и иметь значения, такие как 1.2e6 :: Num a => a и 5e10 :: Num a => a . Это применяется только к литералам, которые фактически оказываются целочисленными значениями. Например, 1.23e1 :: Fractional a => a с 1.23e1 == 12.3, однако 1.23e2 :: Num a => a как 1.23e2 == 123.

Целочисленные литералы, написанные с использованием научной записи, будут развёрнуты с использованием fromInteger, в то время как любые литералы, которые не являются целыми, будут развёрнуты с использованием fromRational как обычно.

Обратите внимание, что обычные литералы с плавающей точкой (без экспоненты) также будут развёрнуты с помощью fromInteger и присвоят тип Num a => a, если они представляют целочисленное значение. Например, 1.0 :: Num a => a, но 1.1 :: Fractional a => a.

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.12.1/docs/users_guide/exts/num_decimals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API