Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prolog 序言列表长度_Prolog - Fatal编程技术网

Prolog 序言列表长度

Prolog 序言列表长度,prolog,Prolog,我正在练习prolog的考试,我遇到一个问题,问我这个列表会有多长:[1 |[2],[3],[4]]。当我看答案时,答案是3,但我不明白为什么答案是3。有人能给我解释一下吗 提前谢谢 因为|运算符将一个列表分为头1和尾[2、[3、[4]],其中尾是一个列表,完整列表的头加尾部分位于头之后 这么写 [One|[Two,[Three,[Four]]]] 就像写作一样 [One, Two, [Three,[Four]]] 这是一个包含三个元素的列表。嗯,我想我现在看到了,括号真的把我弄糊涂了。让我

我正在练习prolog的考试,我遇到一个问题,问我这个列表会有多长:[1 |[2],[3],[4]]。当我看答案时,答案是3,但我不明白为什么答案是3。有人能给我解释一下吗

提前谢谢

因为|运算符将一个列表分为头1和尾[2、[3、[4]],其中尾是一个列表,完整列表的头加尾部分位于头之后

这么写

[One|[Two,[Three,[Four]]]]
就像写作一样

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

这是一个包含三个元素的列表。

嗯,我想我现在看到了,括号真的把我弄糊涂了。让我觉得是2个元素而不是3个元素。谢谢大家!@LuukLooijenga一个或多个元素的列表可以写成[H | T],其中H是第一个元素,T是其余元素或尾部,它本身就是一个列表。如果您发现max66的答案令人满意,您应该接受它并单击复选标记。。。。因此列表的长度[H | T]比列表的长度T长一倍。