私は「Haskell を学ぶ」チュートリアルを進めており、この部分にいます:
lucky :: (Integral a) => a -> String
この行を実行しようとすると、次のようになります。
<interactive>:1:1: Not in scope: `lucky'
私は何を間違っていますか?
これは関数コードではなく、関数定義とともにモジュールにのみ保存でき、GHCi にロードできる関数シグネチャです。
lucky
このシグネチャは、を取得してInteger
を返す関数を定義しようとしていることを意味しますString
。
ただし、GHCi を対話型インタープリターとして使用して関数を構成している場合は、Haskell に関数の型を推測させることができます。
ghci> let lucky x = show (x + 1)
ghci> :t lucky
lucky :: (Num a) => a -> String