【发布时间】:2026-02-05 17:25:01
【问题描述】:
我是 Prolog 的新手,我想要实现的是对保存在我的程序中的两个列表执行 append/3 之类的操作。我不需要打开 swi-prolog 并输入 append([a,b,c],[h,j,k],X). 即可获得 X=[a,b,c,h,j,k]。我需要的是从程序中检索两个列表并对其执行附加操作。
我什至不知道我想获得的东西是否可以在 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]).
我想向 SWI-prolog 中的“esempio.pl”提问并问它:
personal_union(family,colors,X).
并获取统一列表:
X=[alessandro,cinzia,fabio,blu,giallo,lilla,verde,rosso]`
我的代码是一个可能的解决方案吗?我自己无法尝试,因为它一直给我这个错误:语法错误:术语的非法开始说明错误出现在我的规则正文的开头。
【问题讨论】: