Hello, You are right. In gprolog, sublist(L1, L2) succeeds if all elements of L1 appear in L2 in the same order. I agree the name is confusing but this is compatible with SICStus, YAP and hProlog (others ?).
Anyway I have to update the doc which is erroneous. Daniel Le 7 juil. 2012 à 01:28, Heiko a écrit : > Hello Daniel, > > thanks for your work! > > I think I have found a bug. > > At least the sublist/2 predicate does not what i would expect. > I get the effect of an subsequence instead of a sublist. > > I also consulted the manual, which lapidarly states > List processing > > sublist(List1, List2) succeeds if List1 is a sub-list of List2. This > predicate is re-executable on backtracking. > > So what is a sub-list? > > GNU Prolog 1.4.1 > By Daniel Diaz > Copyright (C) 1999-2012 Daniel Diaz > | ?- sublist([ll,r],[ll,l,rr,r]). > > true ? > > yes > | ?- sublist([l,r],[ll,l,rr,r]). > > true ? > > yes > | ?- sublist([rr,r],[ll,l,rr,r]). > > true ? > > yes > | ?- > > I would consider only the result from the last call > "sublist([rr,r],[ll,l,rr,r])." correct, > since the first argument is a true sublist here. > The others calls should give a 'no' result, since there are > other elements ([l,rr] and [rr]) inserted. > > I experimented with other sublist definitions also. > This definition of a sublist/2 predicate > > sublist(S,L):-append(_,S,P),append(P,_,L). > > from here > http://kti.mff.cuni.cz/~bartak/prolog.old/learning/LearningProlog2.html > exhausts all stack when the S argument is not a sublist of L (instead of > 'no'). > > The following definition however works as expected: > > sublist3(S,L):-prefix(S,L). > sublist3(S,[_|T]):-sublist3(S,T). > > The expectation is that the calls with first two argument settings > should yield 'no' and the last should yield 'yes'. > > My machine: > Windows XP SP3, AMD Athlon 2GHz, 3 GB RAM > > I am using the MSVC-precompiled binary of GNU Prolog version 1.4.1 from the > gnuprolog website. > > Thanks for your attention and greetings, > Heiko Eißfeldt > > > _______________________________________________ > Bug-prolog mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/bug-prolog > > -- > Ce message a ete verifie par MailScanner > pour des virus ou des polluriels et rien de > suspect n'a ete trouve. > -- Ce message a ete verifie par MailScanner pour des virus ou des polluriels et rien de suspect n'a ete trouve. _______________________________________________ Bug-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/bug-prolog
