我正在使用http://learnyouahaskell.com学习haskell,我不知道什么时候必须将TypeClass包含到像下面这样的函数类型声明中:
reverse' :: (Int a) => [a] -> [a]例如,在递归:http://learnyouahaskell.com/recursion中。有一些例子,当老师包括台风,而其他人只把类型没有台风。
repeat' :: a -> [a] 什么时候I应该包含Typeclass,在哪些情况下没有必要?
发布于 2016-06-06 13:18:05
大多数情况下,GHC可以确定需要什么样的约束。下面有两种方法让GHC告诉您它认为最常见的函数类型是什么:
:t functionName_ (GHC >= 7.8)作为类型签名:
重复:_重复.=ghci和ghc都会发出如下消息:
Found hole ‘_’ with type: ...发布于 2016-06-06 12:42:57
通常情况下,最好是以最小的限制来设计您的函数。您的reverse'函数是否实际执行要求其内容为Int类型的任何操作?如果没有,那么就没有理由强制限制内容是Int类型的。
https://stackoverflow.com/questions/37657698
复制相似问题