付属のバインディングがありません - これはどういう意味ですか?使い方?
-
12-12-2019 - |
質問
LYAHから練習中です。
PhoneBook.hs ファイルには次のコードが含まれています。
電話帳 ::[(文字列, 文字列)]
上記のコードをコンパイルしようとすると、次のエラーが発生します。
*main>:load "/home/optimight/phonebook.hs" [1 of 1] Main(/home/optimight/phonebook.hs、解釈)
/home/optimight/phoneBook.hs:1:1:「電話帳」のタイプ署名には、付随するバインディングが失敗し、モジュールがロードされていません。なし。
brano の回答とこの回答に対するその後のコメントの後に質問が追加されました:上記の型シグネチャをどのように実装すればよいでしょうか?
これを追加すると:
typephoneBook = [(文字列, 文字列)]
次のエラーが発生します:
プレリュード>:load "/home/optimight/phonebook.hs" [1 of 1] Main(/home/optimight/phonebook.hs、解釈)
/home/optimight/phoneBook.hs:2:6:型またはクラス宣言の先頭が不正です:電話帳が失敗し、モジュールがロードされました:なし
解決
電話帳の実装を提供する必要があります。
phoneBook :: [(String, String)]
は単なる署名です。
他のヒント
型を宣言したい場合は、先頭を大文字にする必要があります。つまり、 type PhoneBook = [(String, String)]
.
関数を宣言したい場合は、関数の定義 (バインディング) だけを指定するか、定義と型シグネチャの両方を指定する必要があります。コードをコンパイルするための最小限の労力は次のとおりです。
phoneBook :: [(String, String)]
phoneBook = undefined
その後、交換できます undefined
type の任意の値 [(String, String)]
例えば [("Person","Number")]
.