当前位置:  开发笔记 > 程序员 > 正文

Prolog - 第一个列表是第二个列表的子列表?

如何解决《Prolog-第一个列表是第二个列表的子列表?》经验,为你挑选了1个好方法。

例如:

isin([1,2,3], [1,0,1,2,3,0])

将产生真实,因为123在里面101230

我写了以下代码:

isin([AH|AT],[AH|AT]).

isin([AH|AT],[BH|BT]):- AH = BH, isin(AT,BT),isin([AH|AT],BT).

似乎不起作用.尽量不要使用任何内置功能和BTW,Prolog有内置sublist(L1,L2)功能.

如何使用SWI-Prolog针对内置函数编写查询?我试着直接写

?- sublist([1],[2]).

但它给了我underfined procedure错误.

是否可以看到内置函数是如何编码的?怎么样?



1> ДМИТРИЙ МАЛИ..:
sublist( [], _ ).
sublist( [X|XS], [X|XSS] ) :- sublist( XS, XSS ).
sublist( [X|XS], [_|XSS] ) :- sublist( [X|XS], XSS ).


如果我们不想太阳序列,但真正的子列表http://hpaste.org/50293
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有