Интересно, существует ли функция, которая преобразует рациональные типы в Float (Rational a => a -> Float).No toFloat in Haskell
Я пробовал hoogling, но ничего не нашел.
Интересно, существует ли функция, которая преобразует рациональные типы в Float (Rational a => a -> Float).No toFloat in Haskell
Я пробовал hoogling, но ничего не нашел.
В Haskell вы не конвертируете в, но от. См. fromRational
.
threeHalves :: Ratio Integer
threeHalves = 3 % 2
sqrt threeHalves -- Fails
sqrt $ fromRational threeHalves -- Succeeds
Если вам нужен Rational -> Float
функцию, вы можете определить его как
toFloat x = fromRational x :: Float
Существует также fromIntegral для конвертации Int
s и Integer
s в любой формат от Num
.
foo :: Float -> Float
foo x = x+1
value :: Int
value = 4
newValue = foo (fromIntegral value)
Обратите внимание, что Rational
типа, а не класс типов, так Rational a => a
не имеет смысла. Вместо этого попробуйте hoogling Rational -> Float.
Спасибо, мне особенно нравится первое предложение .. должно многое помочь в будущем. – aelguindy
Когда-нибудь вы конвертируете, иногда. Есть, например, 'toInteger'. – augustss