"xs"は残りの要素をリストに表現するのに使うことができます。 しかし、私はHaskellの "ls"の意味を全く知らないのですか?ハスケルで "ls"とは何を意味していますか?
答えて
ls
はあらかじめ定義されたものではありません。 xs
のように、バインドしても構いません。リストの残り(の値を持つことになります)はをバインド取得、あなたはちょうどここに定義されていること
sum [] = 0
sum (x:xs) = x + sum xs
変数xs
、:
例えば、私はあなたがこのような例を見てきましたと思いますパターン(x:xs)
のためです。それは数字1
(または本当にめちゃめちゃフォントでも、パイプ記号|
)で簡単に混乱しているので、私たちは、しかし、変数l
を呼び出すことがないことを好む
sum [] = 0
sum (l:ls) = l + sum ls
:しかし、これは同様に良好のように記述されている可能性があります。私たちも、書くことができ
:我々は組み込みのプレリュード機能head
とtail
の名前を再利用するが、これは混乱を招くためにバインドされている
sum [] = 0
sum (head:tail) = head + sum tail
。
リストを参照する変数を命名するためのhaskellの経験則は、通常の複数形の場合と同様に、-sを追加することです。したがって、x
要素のリストがある場合は、xs
という名前になります。 l
がある場合、l
のリストはls
になります。
これはまったく同じことです。名前には特別なものは何もありません。リストxとxs、aとas、lとlsなどの先頭と末尾にそれぞれ名前を付けるだけです。
私は、lのリストの特殊なケースの場合、xs
の代わりにls
を使用しています。
私はそれに 'xss'を使用しています:) –
@benmachine:たぶん私はあまりにも多くのWebをやったことがありますが、クロスサイトスクリプティングを考えずに' xss'を見ることはできません。 –
リスト '(h :: ls)'を破壊する場合は、同じことを意味します。 's'サフィックスは、リストの末尾に名前を付けるための一般的な規則です。 – Lee
@Lee:ハスケルでは '(h:ls)'です。 '::'はML、O'Camlなどではコンスです。 – amindfv
"ls"はHaskellの本質的な意味を持ちません。 –