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