7

私は1年間、新人ハスケラー(「新人ハスケラー」は永遠に)でした。私は小さなhaskellプログラム(例えば、非常に単純なスネークゲーム)をコーディングしましたが、特定のライブラリを使用する必要がある場合、パッケージの依存関係とghcの失敗したバージョンは私にとって難しいものです。

正しいghcバージョンを選択することは芸術だと思います。

あまりにも新しく、ライブラリが失敗します(たとえば、yesodが最近7.4に更新されました。grapefruit-ui-gtkは現在失敗しています)。

古すぎて、ライブラリは廃止されましたが、まだサポートされていません。

HackageDBとその開発者は素晴らしいですが、私は不器用で、本格的なプログラムを開発する正しい方法がわかりません。

私がしなければならないこと?私も経験が浅いですか?難しい方法が唯一の方法ですか?

(質問が一般的すぎる場合はすみません)

4

2 に答える 2

8

Haskell プラットフォームに固執します。

GHC の安定版リリースを 6 か月ごとに標準化するために存在するため、どの GHC を使用するかを推測する必要はありません。

于 2012-10-11T14:17:16.070 に答える
5

あなたが説明した問題は、経験不足とは何の関係もないと思います。これはただ起こることです。いくつかの提案:

原則として、依存しているすべてのパッケージが新しいバージョンをサポートしていることがわかるまで、Haskell プラットフォーム (または ghc) をアップグレードしないでください。最新かつ最高のプラットフォームが必要な場合は、プラットフォームの複数のバージョンを並べて実行できますが、いくつかの目的で古いバージョンを使用する必要もあります.

メンテナに連絡して、いつパッケージをアップグレードするか尋ねてください。10 回のうち 9 回は、cabal ファイルを変更し、再コンパイルして、再アップロードするだけです。メールアドレスを見つけるには、パッケージ名で hackage を検索し、バナーで「Maintainer」という単語を探します。

汚い回避策として: cabal ファイルを自分で変更してみてください (バージョンの競合を避けるために、パッケージのバージョン番号の末尾に「.1」を追加し、ベースに必要なバージョン番号を更新してください)。コンパイルされた場合。私は何度かこれを成功させた後、GitHub または彼らが使用しているものを使用して、メンテナに更新を送信しました。

于 2012-10-11T17:15:57.413 に答える