Я новичок в Prolog, и я пытаюсь перечислить предикаты перестановки.SICStus Prolog: Как переставить список [0,1,2,3,4,5,6,7,8,9]
Большинство из них принимают два аргумента (например, permutation/2
).
Я ищу, чтобы создать тот, который принимает только один аргумент (список), а также выясняет, имеет ли список ровно 10 элементов.
Так, например:
| ?- permutation([7, 1, 2, 3, 4, 5, 6, 0, 8, 9]).
yes
| ?- permutation(X).
X = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
...
| ?- permutation([A,B,C,D,E,F,G,H,I,J]).
A = 0
B = 1
C = 2
...
J = 9 ;
Цените любые советы!
Возможный дубликат [размещени Пролог] (http://stackoverflow.com/questions/27350677/permutation-prolog) –
Хм я не думаю, что это так, так как им просят о перестановке/1, а не перестановка/2 – Layos
просто определить перестановка10 (X): - перестановка (10, X). Затем вы можете вызвать перестановку10 ([7, 1, 2, 3, 4, 5, 6, 0, 8, 9]), перестановку 10 (X) или перестановку 10 ([A, B, C, D, E, F, G, H, I, J]) и т. Д. –