Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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中使用append/3查找列表的最后2个元素_Prolog - Fatal编程技术网

如何在Prolog中使用append/3查找列表的最后2个元素

如何在Prolog中使用append/3查找列表的最后2个元素,prolog,Prolog,使用系统谓词append/3,编写要返回的谓词: 列表的最后一个元素 列表的最后两个元素 列表的最后n个元素 列表的前n个元素。 谢谢,如果您有任何帮助,我们将不胜感激。附加A、B、C是什么意思?这意味着 A=[……] B=[……] C=[……] 什么是 长度B,2 什么意思?这意味着 B=[X | B1], 长度B1,1 所以,这意味着 B=[X | B1], B1=[Y | B2], 长度B2,0 %即。 B=[X | B1], B1=[Y | B2], B2=[] %即。 B=[X | B

使用系统谓词append/3,编写要返回的谓词:

列表的最后一个元素 列表的最后两个元素 列表的最后n个元素 列表的前n个元素。 谢谢,如果您有任何帮助,我们将不胜感激。

附加A、B、C是什么意思?这意味着

A=[……] B=[……] C=[……] 什么是

长度B,2 什么意思?这意味着

B=[X | B1], 长度B1,1 所以,这意味着

B=[X | B1], B1=[Y | B2], 长度B2,0 %即。 B=[X | B1], B1=[Y | B2], B2=[] %即。 B=[X | B1], B1=[Y |[]] %即。 B=[X |[Y |[]]=[X |[Y]] =[X,Y |[]] =[X,Y] 诸如此类

B=[X,Y],附加A,B,C 意味着

A=[……] B=[XY] C=[…….XY] 我认为它的意思很清楚。这意味着我们可以定义

最后一次之前一次,X:- %你现在可以完成这件事了! 正如我们所看到的,B=[[uu,][uu]意味着长度B,也就是说,我们反向追踪我们的方程,我们可以使用其他东西作为长度的参数。解决您的其他问题。

最后一个元素:append_X],List

最后两个元素:追加[X,Y],列表

最后n个元素:lengthLastN,n,append,LastN,List


前n个元素:lengthFirstN,n,appendFirstN,u,List

您卡在哪里?你试过什么?你试过什么吗?您是否在Prolog命令提示符下使用append/3来查看它的行为?你试过什么?请注意,长度/2对于3和4来说很方便。是的,在列表中找到最后一个元素之前的一个元素不在所述问题之列。能够解决更多的问题,掌握问题,这很好。