n
因为sort的类型是Ord a => [a] -> [a],所以无法编译。这对我来说似乎很奇怪,因为我认为所有的Num-type值都是固有的可排序的。为了解决这个问题,我需要添加一个额外的类型约束(即(Fractional a, Ord a) => [a] -> Int -> a)。查看Haskell的文档,这在中是有意义的。尽管
我正在编写Haskell,但它可以应用于任何具有ADT概念的OO或函数式语言。我将在Haskell中给出模板,忽略算术运算符已经被采用的事实: (+) :: a -> a -> a x(*) :: (RealFrac b) => a -> b -> a negate x = x * (-1)
基本上,这些东西可以加减,