Я хочу написать предикат, который поменяет первые две буквы в атоме длиной два или более. Длина одного атома неизменна.
, например. ? - обмен (cat, X). X = действие; с использованием 'name'Изменение первых двух букв в слове с использованием пролога
Я не собираюсь это делать, может кто-нибудь мне помочь.
Можно ли перевести письмо в переменную и поменять ее на третью переменную, как в программировании 'C'?
кода следующим образом: -
interchange(X,[]).
interchange(X,[H|T]):- swap([A,B],W).
swap(X,Y):- name(X,[A,B|C])-> name(Y,[B,A|C]).
я не был уверен, что с моей логикой. Я сделал то же самое, но не работал.
я получаю мое о/р, как:
23 - посоветуйтесь (inter_change). Предупреждение: обмен/2 переопределены Предупреждение: swap/2 переопределено true. 24? - обмен (кошка, X). X = []; X = [_VCTC | _VCTD]; сбой.
возможно дубликат [предиката, который будет поменять местами первые две буквы в атоме в Прологе] (http://stackoverflow.com/questions/26323501/predicate-that-will-swap-the-first-two-letters-in-an-atom-in-prolog) – false