2017-01-23 128 views
0

我在prolog中練習我的考試,並且遇到一個問題,詢問我這個列表需要多長時間:[One|[Two,[Three,[Four]]]]。當我看到答案時,它說3,但我不明白爲什麼它是3.有人可以向我解釋這一點嗎?Prolog列表長度

提前致謝!

回答

1

因爲|運營商在一個「頭」(One,在你的例子)和「尾」([Two,[Three,[Four]]])這裏的「尾巴」是一個列表,完整列表的一部分(頭加尾劃分列表)跟在頭上。

所以寫

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

是這樣寫

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

是有三個元素的列表。

+0

嗯我想我現在看到它,括號只是讓我很困惑。讓我覺得它是2個元素而不是3個。謝謝! –

+0

@LuukLooijenga一個或多個元素的列表可以寫成'[H | T]'其中'H'是第一個元素,'T'是* rest *或* tail *,本身就是一個列表。如果你發現max66的回答令人滿意,你應該接受它(點擊勾號)。 – lurker

+0

...因此列表的長度爲[H | T]'比列表'T'的長度多一個。 –