0

私は Haskell に比較的慣れていないのでRepa、プロジェクトでパッケージを使用しようとしています。を使用してソース コードにパッケージをインポートしましたimport qualified Data.Array.Repa as Rが、Haskell ファイルを ghci にロードすると、次のエラーが発生します。

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

私は何をすべきか?

4

1 に答える 1

3

2 つの問題があるようです。まず、修飾されたモジュールをインポートしていますが、修飾されていない状態で使用しています。修飾する必要のない定義の追加のインポートを追加できます。

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

2 番目の問題は、3 番目のエラー メッセージの内容です。TypeOperators拡張機能をオンにする必要があります。これをファイルの先頭に置きます。

{-# LANGUAGE TypeOperators #-}
于 2016-09-15T19:36:08.923 に答える