0

という関数を書きましたproduct

product [] = 1
product (x:xs) = x * product xs

WinHugにロードすると:

ERROR file:.\product.hs:4 - あいまいな変数オカレンス "product"
*** 参照先: Main.product Hugs.Prelude.product

これは何を意味するのでしょうか?

4

2 に答える 2

15

このproduct関数はHaskell Prelude で定義されています。

ローカルの定義がライブラリのバージョンと競合しています。

バージョンの名前を egmyproductまたはに変更することを検討してくださいimport Prelude hiding (product)

また、Hugs の代わりに GHC の使用を検討することもできます。

于 2012-04-25T11:57:07.283 に答える
8

Haskell Preludeproductで名前が付けられた関数が既に存在します。

ところで、Hugs の代わりにHaskell Platformをインストールする必要があります。Hugs はもはや保守されていない古いプロジェクトであり、GHC/i ははるかによくサポートされており、より多くの機能を備えています。あなたの学校が Hugs を使うことを望んでいるとしても、密かに GHCi を使った Haskell Platform を私的に使っても害はありません。

于 2012-04-25T11:58:36.177 に答える