55

私は「Haskell を学ぶ」チュートリアルを進めており、この部分にいます:

lucky :: (Integral a) => a -> String

この行を実行しようとすると、次のようになります。

<interactive>:1:1: Not in scope: `lucky'

私は何を間違っていますか?

4

2 に答える 2

62

これは関数コードではなく、関数定義とともにモジュールにのみ保存でき、GHCi にロードできる関数シグネチャです。

luckyこのシグネチャは、を取得してIntegerを返す関数を定義しようとしていることを意味しますString

ただし、GHCi を対話型インタープリターとして使用して関数を構成している場合は、Haskell に関数の型を推測させることができます。

ghci> let lucky x = show (x + 1)
ghci> :t lucky
lucky :: (Num a) => a -> String
于 2011-03-24T10:26:01.613 に答える