2016-09-15 41 views
0

對於Haskell,我比較新,而且我試圖在項目中使用Repa包。我已經使用import qualified Data.Array.Repa as R進口包在我的源代碼,但在ghci中加載Haskell的文件時,我收到以下錯誤:嘗試使用Repa包時不在範圍內錯誤

Location_repa.hs:46:26: 
Not in scope: type constructor or class `D' 
Perhaps you meant `R.D' (imported from Data.Array.Repa) 

Location_repa.hs:46:29: 
Not in scope: type constructor or class `Z' 
Perhaps you meant `R.Z' (imported from Data.Array.Repa) 

Location_repa.hs:46:30: 
Illegal operator `:.' in type `Z :. (Dimension :: Int)' 
Use TypeOperators to allow operators in types 
..... 

這裏是源代碼,使用部分Repa

type CoordList = Array D (Z:. (Dimension::Int)) Integer 

看起來好像軟件包沒有導入(加載)。在後續的使用ghc-pkg list repa結果:

C:/Program Files/Haskell Platform/7.10.2-a\lib\package.conf.d: 
(no packages) 
C:\Users\...\AppData\Roaming\ghc\x86_64-mingw32-7.10.2\package.conf.d: 
repa-3.4.1.1 

我該怎麼辦?

回答

3

看起來你有兩個問題。首先,您要導入符合條件的模塊,但使用它不合格。您可以添加額外的進口爲您不希望有資格定義:

import Data.Array.Repa (D,Z,(:.)) 

第二個問題是什麼,第三個錯誤消息告訴你。您需要打開TypeOperators擴展。把它放在文件頂部:

{-# LANGUAGE TypeOperators #-} 
相關問題