1

私は「Purescript by Example」の本に従っており、第 5 章のコードを実装しています。しかし、理解できないコンパイルエラーが発生します。

この行でコンパイル エラーが発生します (コードはこの行なしでコンパイルされます)。

showPicture = map showShape

エラーは次のとおりです。

No instance found for Prelude.Functor _67

そして、エラーの説明は私にとって明確ではありません。なぜこのエラーが発生するのですか?

これらの依存関係が私のbowerファイルにインストールされています:

"dependencies": {
  "purescript-console": "^0.1.0"
  "purescript-foldable-traversable": "~0.4.0",
  "purescript-globals": "~0.2.0",
  "purescript-math": "~0.2.0"
}
4

1 に答える 1

1

型シグネチャを追加する必要があります。

この関数は、 (この場合は )mapを使用していることを意味します。したがって、関数の一般的なタイプはFunctorArray

showPicture :: forall f. (Functor f) => f Shape -> f String 

あなたはおそらくより具体的なタイプを意味していました

showPicture :: Picture -> Array String 

ただし、pscまだ制約を推論していないため、それをガイドする型シグネチャが必要です。1.0 のリリース前に制約が推測されることを願っpscていますが、今のところ、これが回避策です。

于 2015-09-08T15:14:34.183 に答える