という関数を書きましたproduct
:
product [] = 1
product (x:xs) = x * product xs
WinHugにロードすると:
ERROR file:.\product.hs:4 - あいまいな変数オカレンス "product"
*** 参照先: Main.product Hugs.Prelude.product
これは何を意味するのでしょうか?
このproduct
関数はHaskell Prelude で定義されています。
ローカルの定義がライブラリのバージョンと競合しています。
バージョンの名前を egmyproduct
またはに変更することを検討してくださいimport Prelude hiding (product)
。
Haskell Preludeproduct
で名前が付けられた関数が既に存在します。
ところで、Hugs の代わりにHaskell Platformをインストールする必要があります。Hugs はもはや保守されていない古いプロジェクトであり、GHC/i ははるかによくサポートされており、より多くの機能を備えています。あなたの学校が Hugs を使うことを望んでいるとしても、密かに GHCi を使った Haskell Platform を私的に使っても害はありません。