0
我在prolog中練習我的考試,並且遇到一個問題,詢問我這個列表需要多長時間:[One|[Two,[Three,[Four]]]]
。當我看到答案時,它說3,但我不明白爲什麼它是3.有人可以向我解釋這一點嗎?Prolog列表長度
提前致謝!
我在prolog中練習我的考試,並且遇到一個問題,詢問我這個列表需要多長時間:[One|[Two,[Three,[Four]]]]
。當我看到答案時,它說3,但我不明白爲什麼它是3.有人可以向我解釋這一點嗎?Prolog列表長度
提前致謝!
因爲|
運營商在一個「頭」(One
,在你的例子)和「尾」([Two,[Three,[Four]]]
)這裏的「尾巴」是一個列表,完整列表的一部分(頭加尾劃分列表)跟在頭上。
所以寫
[One|[Two,[Three,[Four]]]]
是這樣寫
[One, Two, [Three,[Four]]]
是有三個元素的列表。
嗯我想我現在看到它,括號只是讓我很困惑。讓我覺得它是2個元素而不是3個。謝謝! –
@LuukLooijenga一個或多個元素的列表可以寫成'[H | T]'其中'H'是第一個元素,'T'是* rest *或* tail *,本身就是一個列表。如果你發現max66的回答令人滿意,你應該接受它(點擊勾號)。 – lurker
...因此列表的長度爲[H | T]'比列表'T'的長度多一個。 –