Шаг 36.
Основы языка Haskell.
Основные функции библиотеки Prelude. Функции приведения к типу

    На этом шаге мы рассмотрим функции этого типа.

    К этому типу функций относятся:

  1. Функция, преобразующая число из типа Integer в целочисленный тип из класса Num:
       fromInteger:: Num a => Integer -> a
       fromInteger n
    
    Например:
       > fromInteger 1   > fromInteger 2147483649   > fromInteger (-12)
       1                 2147483649                 -12
    
    Определена примитивом в трансляторе.

  2. Функция, преобразующая число типа Int в число целочисленного типа из класса Num:
       fromInt:: Num a => Int -> a
       fromInt n
    
    Например:
       > fromInt 2147483647
       2147483647
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
  3. Функция для приведения числа типа Double к числу одинарной точности (тип Float):
       doubleToFloat:: Double -> Float
       doubleToFloat n
    
    Например:
       > doubleToFloat 5.99999   > doubleToFloat 5.999999
       5.99999                   6.0
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
  4. Функция для преобразования целого числа в рациональное. В качестве числителя берётся заданное число, в качестве знаменателя - 1:
       intToRatio:: Integral a => Int -> Ratio a
       intToRatio n
    
    Например:
       > intToRatio 4
       4 % 1
    

    Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
  5. Функция для перевода действительного числа в рациональное представление:
       realToFrac:: (Real a, Fractional b) => a -> b
       realToFrac n
    
    Например:
       > realToFrac 12   > realToFrac (-123)   > realToFrac 1234567890
       12.0              -123.0                1.234567e+009
    
  6. Функция для преобразования рационального числа в действительное двойной точности (тип Double):
       rationalToDouble:: Rational -> Double
       rationalToDouble n
    
    Например:
       > rationalToDouble 23/4   > rationalToDouble (-28)
       5.75                      -28.0
    
       > rationalToDouble 567/1024
       0.553711
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) имя функции:
       fromRational n
    
    Например:
       > fromRational 23/4   > fromRational (-28)
       5.57                  -28
    
       > fromRational 567/1024
       0.5537109375
    

  7. Функция для преобразования рационального числа в действительное число одинарной точности (тип Float):
       rationalToFloat:: Rational -> Float
       rationalToFloat n
    
    Например:
       > rationalToFloat 123456789/987654321
       0.125
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) имя функции:
       fromRational n
    
    Например:
       > fromRational 123456789/987654321
       0.124999998860938
    

  8. Функция для приведения числа типа Double к виду обычной дроби:
       doubleToRatio:: Integral a => Double -> Ratio a
       doubleToRatio n
    
    Например:
       > doubleToRatio 2.25   > doubleToRatio 0.005
       9 % 4                  5368709 % 1073741824
    

    Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
  9. Функция для преобразования числа типа Double (действительного) к рациональному:
       doubleToRational:: Double -> Rational
       doubleToRational n
    
    Например:
       > doubleToRational 4   > doubleToRational 2.5
       4 % 1                  5 % 2
    
       > doubleToRational 3.1415
       6588203 % 2097152
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) имя функции таково:
       toRational n
    
    Например:
       > toRational 4   > toRational 2.5
       4 % 1            5 % 2
    
       > toRational 3.1415
       7074029114692207 % 2251799813685248
    

  10. Функция для преобразования действительного числа типа Float в рациональное:
       floatToRational:: Float -> Rational
       floatToRational n
    
    Например:
       > floatToRational 12.345   > floatToRational (-5.0e-10)
       12944671 % 1048576         -9007199 % 18014398509481984
    
    Определена примитивом в трансляторе.
    Замечание. В версии интерпретатора Haskell (май, 2006) имя функции таково:
       toRational n
    
    Например:
       > toRational 12.345
       6949617174986097 % 562949953421312
    
       > toRational (-5.0e-10)
       (-4835703278458517) % 9671406556917033397649408
    

  11. Функция для получения реального дробного значения действительного числа:
       realFloatToRational:: RealFloat a => a -> Ratio Integer
       realFloatToRational n
    
    Например:
       > realFloatToRational 2.25   > realFloatToRational (-0.00005)
       9 % 4                        -13743895 % 274877906944
    

    Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
  12. Функция, преобразующая заданное число в перечислимое. Осуществляет простое преобразование в целое число и обратно:
       fromIntegral:: (Integral a, Num b) => a -> b
       fromIntegral n
    
    Например:
       > fromIntegral 12/3   > fromIntegral 12   > fromIntegral 23/4
       4.0                   12                  5.75
    

    На следующем шаге мы рассмотрим аппроксимирующую функцию.




Предыдущий шаг Содержание Следующий шаг