haskell - 如何转换 a -> Float?

标签 haskell

我认为我可以将 fromEnum 用于 a -> Int 但我如何为 a -> Float 使用它。我需要我的变量是一个 Float 才能让我的函数工作,但我不知道如何转换它?我已经阅读了 Prelude,但看不到任何可行的方法。对不起,如果这是一个非常愚蠢的问题,但我才刚刚开始。

最佳答案

这取决于a是什么。如果 a 是 Integral 的实例,例如 IntInteger , 您可以使用

fromIntegral :: (Integral a, Num b) => a -> b

如果 a 是 Real 的实例,例如 Rational 或 Double,则可以使用
realToFrac :: (Real a, Fractional b) => a -> b
fromIntegral Integer 和 Rational 也有特殊的函数和 realToFrac基于:
fromInteger :: (Num a) => Integer -> a
fromRational :: (Fractional a) => Rational -> a

如果 a 是 Enum 的实例(因此您可以使用 fromEnum ,如您所说),则 fromIntegral . fromEnum应该这样做。 fromEnum将 a 转换为 Int ,然后 fromIntegral转换自 IntFloat , 所以 fromIntegral . fromEnum将 a 转换为 Float .

关于haskell - 如何转换 a -> Float?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8776823/

相关文章:

haskell - 嵌入式环境中的函数式编程有什么特殊的挑战吗?

c++ - 将 haskell 解释器(提示)构建为动态库,可从 C++ : Missing Interpreter. dyn_hi 使用

Haskell Typeclass 速记

Haskell:脱糖列表理解

haskell - 如何启用 BinaryLiterals?

function - 在 Haskell 中用另一个函数作为参数提升一个函数

authentication - 您如何在单个 POST 请求期间使用 Snap 的身份验证机制?

haskell - Haskell 的计算机视觉库

haskell - 隐式提升的正确性

haskell,数据二叉树的仿函数