9

LYAHから練習しています。

phoneBook.hs ファイルには次のコードが含まれています。

phoneBook :: [(文字列, 文字列)]

上記のコードをコンパイルしようとすると、次のエラーが発生します。

*Main> :load "/home/optimight/phoneBook.hs" [1 of 1] Main のコンパイル ( /home/optimight/phoneBook.hs、解釈済み )

/home/optimight/phoneBook.hs:1:1: 「phoneBook」の型シグネチャには付随するバインディングがありません 失敗しました。モジュールがロードされました: なし。

brano の回答の後に追加された質問と、この回答に対するその後のコメント: 上記の型シグネチャの実装をどのように提供しますか?

これを追加すると:

type phoneBook = [(文字列, 文字列)]

次のエラーが表示されます:

Prelude> :load "/home/optimight/phoneBook.hs" [1 of 1] Main のコンパイル ( /home/optimight/phoneBook.hs、解釈済み )

/home/optimight/phoneBook.hs:2:6: 不正な型またはクラス宣言の先頭: phoneBook に失敗しました。モジュールが読み込まれました: なし

4

2 に答える 2

11

phoneBook の実装を提供する必要があります。

phoneBook :: [(String, String)] サインだけです。

于 2012-07-27T07:41:40.370 に答える
1

型を宣言する場合は、最初に大文字が必要type PhoneBook = [(String, String)]です。

関数を宣言する場合は、その定義 (バインディング) のみを提供するか、定義と型シグネチャの両方を提供する必要があります。コードをコンパイルするための最小限の労力は次のとおりです。

phoneBook :: [(String, String)]
phoneBook = undefined

次に、タイプの任意undefinedの値に置き換えることができます。[(String, String)][("Person","Number")]

于 2012-07-27T08:53:18.650 に答える