2017-01-23 4 views
0

私はプロローグで私の試験を練習しています。私はこのリストがどのくらい長くなるか質問してきました。[One|[Two,[Three,[Four]]]]。私は答えを見たときに3と言いましたが、なぜ3であるのか分かりません。誰かが私にこのことを説明できますか?プロローグリストの長さ

ありがとうございます!

答えて

1

|オペレータは、(あなたの例ではOne、)「頭」と「テール」はリストである「テール」([Two,[Three,[Four]]])、完全なリストの一部(頭部プラス尾にリストを分割しているため)の頭に続く。だから、

[One|[Two,[Three,[Four]]]] 

を書く

は、3つの要素を持つリストである

[One, Two, [Three,[Four]]] 

を書くようなものです。

+0

うん、私は今それを見ると思う、括弧はちょうど本当に私を混乱させる。私は3の代わりに2つの要素だと思った。ありがとう! –

+0

@LuukLooijenga 1つ以上の要素のリストは '[H | T] '' H 'が最初の要素で、' T 'が* rest *または* tail *であり、それ自体がリストです。あなたの答えが満足できるものであれば、それを受け入れるべきです(チェックマークをクリックしてください)。 – lurker

+0

...リストの長さ '[H | T]はリストTの長さの1倍である。 –