SWI-Prolog 7.x изменил значение по умолчанию флага double_quotes
с codes
на string
.Это, очевидно, то, что вызывает проблему, которую вы описываете.Если вы добавите в начало исходного файла с кодом, который вы разместили, следующую директиву:
:- set_prolog_flag(double_quotes, codes).
Вы должны получить:
?- solve([("ab","abab"), ("b","a"), ("aba","b"), ("aa","a")], Solution).
Solution = [4, 4, 2, 1] ;
Solution = [1, 1, 3, 2, 2, 4, 4] ;
Solution = [4, 4, 2, 1, 4, 4, 2, 1] ;
Solution = [1, 1, 3, 2, 2, 4, 3, 4, 2|...] ;
Solution = [1, 1, 3, 2, 2, 4, 4, 4, 4|...] ;