【发布时间】:2015-11-17 11:25:09
【问题描述】:
像2^(2%1) 这样的表达式不会在 GHCi 中进行类型检查,并且错误消息很神秘。为什么这不起作用,我需要更改什么?
我无法转换为另一种类型,我想要像 27^(1%3) 这样的表达式。
【问题讨论】:
-
你希望结果是什么类型的?
-
@Ludwik 有一个
Integral a => Fractional (Ratio a)实例,但没有Ratio a的Integral实例。 -
AFAIK 在 Haskell 中有三个电源运算符:
(^) :: (Num a, Integral b) => a -> b -> a、(^^) :: (Fractional a, Integral b) => a -> b -> a和(**) :: (Floating a) => a -> a -> a。所以指数要么是Integral要么是Floating,但没有可用的Fractional指数......你应该使用27**(realToFrac $ 2%3)。 -
我第二个拉姆达仙子;你希望结果是什么type?你想要
Ratio吗? (2^(1/2) 不是有理数。)你想要最接近的整数吗?你想要Double吗?你想要什么type?
标签: haskell types ghci exponentiation