4

リスト内の残りの要素を表現するために「xs」を使用できることは知っていますが、Haskellで「ls」が何を意味するのかまったくわかりませんか?

4

4 に答える 4

11

ls事前定義されたものではありません。のように、バインドするものは何でもですxs

たとえば、次のような例を見たことがあると思います。

sum [] = 0
sum (x:xs) = x + sum xs

xsここで定義したvariableは、 pattern により、リストの残りの部分にバインド(x:xs)されます (値を持つことになります) 。しかし、これは次のように書くこともできます。

sum [] = 0
sum (l:ls) = l + sum ls

ただし、変数は数字(または、本当にめちゃくちゃなフォントのパイプ記号)lと混同されやすいため、変数を呼び出さないことをお勧めします。1|

次のように書くこともできます。

sum [] = 0
sum (head:tail) = head + sum tail

ここでは、組み込みのプレリュード関数headおよびの名前を再利用していますがtail、これは混乱を招くに違いありません。

于 2012-04-29T12:02:50.483 に答える
5

リストのリストの特殊なケースのls代わりに使用しています。xs

于 2012-04-29T12:35:39.260 に答える
5

リストを参照する変数に名前を付けるための haskell の経験則は、英語の通常の複数形と同様に、 -sを追加することです。したがって、x要素のリストが ha ある場合は、名前を付けますxs。がある場合l、のリストはlになります ls

于 2012-04-29T11:57:36.500 に答える
2

それはまったく同じことです。xs という名前に特別なことは何もありません。リストの先頭と末尾にそれぞれ x と xs、a と as、l と ls などの名前を付けるのは慣習です。

于 2012-04-29T11:57:50.920 に答える