(请原谅可怕的人为例子)
我想要做的是在where子句中指定类型:
somemap :: (a -> b) -> [a] -> [b]
somemap f xs = ys
where
some = take 5 xs :: [a]
ys = map f some :: [b]
Run Code Online (Sandbox Code Playgroud)
但这会导致错误:
*Main> :load file.hs
[1 of 1] Compiling Main ( file.hs, interpreted )
fil.hs:15:18:
Couldn't match expected type `a1' against inferred type `a'
`a1' is a rigid type variable bound by
an expression type signature at file.hs:15:25
`a' is a rigid type variable bound by
the type signature for …Run Code Online (Sandbox Code Playgroud)