Closed flexoron closed 2 months ago
v2.51.2
$ tpl ?- [user]. phrasetrap1(X,Y) :- phrase([X],Y). phrasetrap2(X,Y) :- phrase([X|"abc"],Y). phrasetrap3(X,Y) :- phrase(["abc"|X],Y). end_of_file. ?- phrasetrap1("abc",Y). Y = ["abc"]. ?- phrasetrap2("abc",Y). Y = ["abc",a|"bc"]. ?- phrasetrap3("abc",Y). throw(error(instantiation_error,must_be/2)). % unexpected ?- /* In contrast resp. expected ?- X="abc",phrase(["abc"|X],Y). X = "abc", Y = ["abc",a,b,c]. */
Fixed!
?- phrasetrap3("abc",Y), phrasetrap2("abc",Y), Y=[_,A,B,C]. Y = ["abc"|"abc"], A = a, B = b, C = c.
v2.51.2