1

GHCi でリストの長さを計算するこの関数 len を書いています。

len [] = 0
len [x] = 1
len (x:xs) = 1 + len xs

引数として関数を呼び出そうとし[]ましたが、エラーが発生Exception: Non-exhaustive patterns in function lenしました。関数定義に既に空のリストのケースを含めていませんか?

4

2 に答える 2

7

chi がコメントで述べているように、GHCi はそのようには機能しません。

次のように、セミコロンを使用して GHCi でマルチパート定義を入力できます。

長さ[] = 0; 長さ (x:xs) = 1 + 長さ xs

(1 項目のリストの場合は、2 番目の部分で処理されます。なぜなら[x] == x : [])

于 2021-01-13T08:25:43.127 に答える