Перестановка /2 не возвращает перестановки
Что такое перестановка /2?
Как сказано в help(permutation).
:
Предикат permutation/2
в первую очередь предназначен для генерации перестановок.
Вот для чего я хочу это использовать.
Как должна работать перестановка / 2
Это пример, приведенный в документации: (Конечно, коробка вокруг обычно не существует.)
____________________________________________________________________| |
| ?- permutation([1,2], [X,Y]). |
| X = 1, Y = 2 ; |
| X = 2, Y = 1 ; |
||false.____________________________________________________________ ||
Воспроизведение примера (и нескольких других примеров)
Когда я пытаюсь permutation/2
, не то же самое происходит: (любой из них запускается на моем компьютере)
?- permutation([1,2],[X,Y]).
X = 1,
Y = 2 .
?- permutation([2,1],X).
X = [2, 1] .
?- permutation([1,2],[2,1]).
true .
Как видите, пролог не возвращает никакой перестановки, а сам ввод.
- Почему это происходит?
- А как получить все перестановки?
Подробнее о моей версии пролога.
- На моем компьютере с Ubuntu/Linux
- Я установил пакет
swipl
только вчера - это говорит мне, что это версия:
threaded, 64 bits, version 7.4.2