问题描述
大家好,我是 Haskell 的初学者,我正在尝试从 Bmp 图像中获取向量,我正在使用下面的这个函数
readMatrixfromImage :: FilePath -> IO [Double]
readMatrixfromImage image = do
x <- readImageFromBMPa image -- 'x' est alors de type t
let (Right r) = x
let a = toUnBoxed r
let b = U.toList a
let b' = Prelude.map (\v -> (fromIntegral v :: Double)/255.0 - 1) b
let c = Prelude.map abs b'
return c
但我收到以下错误,这段代码在不同的机器上工作正常。所以我猜它是关于库版本的,在此先感谢您
• Couldn't match expected type ‘Vector a’
with actual type ‘vector-0.12.1.2:Data.Vector.UnBoxed.Base.Vector
Word8’
NB: ‘vector-0.12.1.2:Data.Vector.UnBoxed.Base.Vector’
is defined in ‘Data.Vector.UnBoxed.Base’
in package ‘vector-0.12.1.2’
‘Vector’
is defined in ‘Data.Vector.UnBoxed.Base’
in package ‘vector-0.12.2.0’
• In the first argument of ‘U.toList’,namely ‘a’
In the expression: U.toList a
In an equation for ‘b’: b = U.toList a
• Relevant bindings include b :: [a] (bound at Tools.hs:124:12)
|
124 | let b = U.toList a
| ^
解决方法
正如 leftaroundabout 和 brad 解释的那样,结果我有两个版本的 Vector 是由安装 repa 库引起的,我删除了一个,它工作得很好。