我只是在学习prolog,我想开始解决一个基本问题,所以我至少可以知道其余部分的一般构造。
例如,。
patt(true,l)
- 始终有效并离开l,则有效
patt(next(char),l)
- 如果char是第一个并且留下l的剩余部分
谓词patt:匹配列表的部分并留下剩余部分或失败。 l = list
什么是Windows上的SWI-Prolog和体面的IDE ..我刚下载它并且看起来非常直接..我还抓住了BProlog并调查了其他几个..答案 0 :(得分:1)
一个更清晰的问题陈述会很好:很难从你的问题中说出来,但听起来我想要匹配列表的前缀并找回所有不属于前缀的元素。我就是这样做的:
match_prefix( [] , [] , [] ).
match_prefix( [] , [Y|Ys] , [Y|Ys] ).
match_prefix( [H|Xs] , [H|Ys] , Tail ) :-
match_prefix( Xs , Ys , Tail ).
应该这样做(但我不能说我已经测试了它,因为我目前没有可以使用的序幕)。