Я новичок в Prolog, и я хочу выполнить операцию типа append/3 над двумя списками, которые сохраняются в моей программе. Мне не нужно открывать swi-пролог и введите append([a,b,c],[h,j,k],X).
, чтобы получить X=[a,b,c,h,j,k]
. Мне нужно что-то вроде получения двух списков из программы и выполнения добавления над ними. Я даже не знаю, возможно ли то, что я хочу получить, в Prolog.Операции над списками в Prolog
Это моя ситуация: Я получил этот файл «esempio.pl», где у меня есть следующее правило, и эти два факта:
personal_union(F,C,Xs) :-
personal_list(F,Fs),personal_list(C,Cs),append(Fs,Cs,Xs).
personal_list(family,[alessandro,cinzia,fabio]).
personal_list(colors,[blu,giallo,lilla,verde,rosso]).
я хотел бы, чтобы вопрос «esempio.pl» от SWI- пролог и спросить его:
personal_union(family,colors,X).
и получить единые списки:
X=[alessandro,cinzia,fabio,blu,giallo,lilla,verde,rosso]`
Является ли мой код возможное решение? Я не мог попробовать это сам, потому что он продолжает давать мне эту ошибку: Ошибка синтаксиса: незаконный старт термина, заявляющий, что ошибка находится в начале тела моего правила.
только для информации, я допросил программу, несмотря на уведомление об ошибке, и получил то, что искал. Спасибо! –
@AlessandroSassi: вы должны принять этот ответ ... – CapelliC
@AlessandroSassi По-прежнему непонятно, какую ошибку вы получите и почему. –