尝试使用 Repa 包时不在范围内错误
Not in scope error when trying to use Repa package
我对 Haskell 比较陌生,我正在尝试在项目中使用 Repa
包。我已经使用 import qualified Data.Array.Repa as R
在我的源代码中导入了包,但是在 ghci 中加载 Haskell 文件时,出现以下错误:
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
我该怎么办?
看来你有两个问题。首先,您要导入合格的模块,但不合格地使用它。您可以为不想限定的定义添加额外的导入:
import Data.Array.Repa (D,Z,(:.))
第二个问题是第三条错误消息告诉您的内容。您需要打开 TypeOperators
扩展程序。把这个放在你的文件的顶部:
{-# LANGUAGE TypeOperators #-}
我对 Haskell 比较陌生,我正在尝试在项目中使用 Repa
包。我已经使用 import qualified Data.Array.Repa as R
在我的源代码中导入了包,但是在 ghci 中加载 Haskell 文件时,出现以下错误:
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
我该怎么办?
看来你有两个问题。首先,您要导入合格的模块,但不合格地使用它。您可以为不想限定的定义添加额外的导入:
import Data.Array.Repa (D,Z,(:.))
第二个问题是第三条错误消息告诉您的内容。您需要打开 TypeOperators
扩展程序。把这个放在你的文件的顶部:
{-# LANGUAGE TypeOperators #-}