3

エラーが発生した場合に欠落している言語プラグマを推測する正しい方法は何ですか? しばらくの間、理解できないエラーが発生することがよくあります。何時間も苦しんだ後、言語プラグマが欠落していることに/google/偶然気づきました。欠落しているプラ​​グマを挿入すると、すべてがうまくいきます。

エラーには表示されず、「あれこれプラグマを追加してみてください」などの手がかりはありません。経験豊富なハスケラーはそれを知っているだけだと私は理解しています。しかし、初心者はどうですか?手がかりを与えるようにコンパイラに指示する方法はありますか?

たとえば、{-# LANGUAGE ExtendedDefaultRules #-} を指定しないと、Snap フレームワークで型エラーが発生することがよくあります。他のソースファイルで見たので試してみました。すべての一般的なプラグマをオンにする方法、またはエラーが発生した場合に必要なプラグマを少なくとも把握する方法はありますか?

4

2 に答える 2

0

GHC は、ほとんどの一般的な問題に対してプラグマを提案するようになりました。ExtendedDefaultRules は決して必要ではないため、推奨されることはありません。むしろ、より明示的な型署名により、その必要性を取り除くことができます。

于 2015-02-25T03:18:22.713 に答える
-2

Snap フレームワークについてはよくわかりません。GHC を使用する場合、言語プラグマをコンパイラ ディレクティブの一部として使用できます: http://www.haskell.org/ghc/docs/7.0.4/html/users_guide/pragmas.html

于 2012-11-30T02:11:47.667 に答える