所以我刚刚开始学习Haskell,我已经坚持了很长一段时间了.所以我有一个函数,在偏移量减去后计算一个数字(最小值为0).我设法使用明确显示的类型执行此功能.
offSetter :: Int -> Int -> Int
offSetter number offset
| number - offset >= 0 = number - offset
| otherwise = 0
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将其更改为使用如下的泛型类型时,它会一直给我一个错误.我做错了吗?
offSetter :: Num a => a -> a -> a
offSetter number offset
| number - offset >= 0 = number - offset
| otherwise = 0
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
* Could not deduce (Ord a) arising from a use of '>='
from the context: Num a
bound by the type signature for:
offSetter :: forall …Run Code Online (Sandbox Code Playgroud) 比如说 MD5 或 SHA-1?这两者的时间复杂度是多少?我试图在互联网上找到它,但它非常有限,我得到的只是它们都是 O(n)。谁能进一步启发我?也许给我一个最坏的情况和最好的情况?