Шаг 36.
Основы языка Haskell.
Основные функции библиотеки Prelude. Функции приведения к типу
На этом шаге мы рассмотрим функции этого типа.
К этому типу функций относятся:
- Функция, преобразующая число из типа Integer в целочисленный тип из класса Num:
fromInteger:: Num a => Integer -> a
fromInteger n
Например:
> fromInteger 1 > fromInteger 2147483649 > fromInteger (-12)
1 2147483649 -12
Определена примитивом в трансляторе.
- Функция, преобразующая число типа Int в число целочисленного типа из класса Num:
fromInt:: Num a => Int -> a
fromInt n
Например:
> fromInt 2147483647
2147483647
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
- Функция для приведения числа типа Double к числу одинарной точности (тип Float):
doubleToFloat:: Double -> Float
doubleToFloat n
Например:
> doubleToFloat 5.99999 > doubleToFloat 5.999999
5.99999 6.0
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
- Функция для преобразования целого числа в рациональное. В качестве числителя берётся заданное число, в качестве знаменателя - 1:
intToRatio:: Integral a => Int -> Ratio a
intToRatio n
Например:
Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
- Функция для перевода действительного числа в рациональное представление:
realToFrac:: (Real a, Fractional b) => a -> b
realToFrac n
Например:
> realToFrac 12 > realToFrac (-123) > realToFrac 1234567890
12.0 -123.0 1.234567e+009
- Функция для преобразования рационального числа в действительное двойной точности (тип Double):
rationalToDouble:: Rational -> Double
rationalToDouble n
Например:
> rationalToDouble 23/4 > rationalToDouble (-28)
5.75 -28.0
> rationalToDouble 567/1024
0.553711
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) имя функции:
Например:
> fromRational 23/4 > fromRational (-28)
5.57 -28
> fromRational 567/1024
0.5537109375
- Функция для преобразования рационального числа в действительное число одинарной точности (тип Float):
rationalToFloat:: Rational -> Float
rationalToFloat n
Например:
> rationalToFloat 123456789/987654321
0.125
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) имя функции:
Например:
> fromRational 123456789/987654321
0.124999998860938
- Функция для приведения числа типа Double к виду обычной дроби:
doubleToRatio:: Integral a => Double -> Ratio a
doubleToRatio n
Например:
> doubleToRatio 2.25 > doubleToRatio 0.005
9 % 4 5368709 % 1073741824
Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
- Функция для преобразования числа типа Double (действительного) к рациональному:
doubleToRational:: Double -> Rational
doubleToRational n
Например:
> doubleToRational 4 > doubleToRational 2.5
4 % 1 5 % 2
> doubleToRational 3.1415
6588203 % 2097152
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) имя функции таково:
Например:
> toRational 4 > toRational 2.5
4 % 1 5 % 2
> toRational 3.1415
7074029114692207 % 2251799813685248
- Функция для преобразования действительного числа типа Float в рациональное:
floatToRational:: Float -> Rational
floatToRational n
Например:
> floatToRational 12.345 > floatToRational (-5.0e-10)
12944671 % 1048576 -9007199 % 18014398509481984
Определена примитивом в трансляторе.
Замечание. В версии интерпретатора Haskell (май, 2006) имя функции таково:
Например:
> toRational 12.345
6949617174986097 % 562949953421312
> toRational (-5.0e-10)
(-4835703278458517) % 9671406556917033397649408
- Функция для получения реального дробного значения действительного числа:
realFloatToRational:: RealFloat a => a -> Ratio Integer
realFloatToRational n
Например:
> realFloatToRational 2.25 > realFloatToRational (-0.00005)
9 % 4 -13743895 % 274877906944
Замечание. В версии интерпретатора Haskell (май, 2006) данная функция не обнаружена.
- Функция, преобразующая заданное число в перечислимое. Осуществляет простое преобразование в целое число и обратно:
fromIntegral:: (Integral a, Num b) => a -> b
fromIntegral n
Например:
> fromIntegral 12/3 > fromIntegral 12 > fromIntegral 23/4
4.0 12 5.75
На следующем шаге мы рассмотрим аппроксимирующую функцию.
Предыдущий шаг
Содержание
Следующий шаг