我是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]`
我的代码是否可能成为解决方案?我自己无法尝试,因为它一直给我这个错误:语法错误:非法开始使用,说明错误是在我的规则正文的开头。
答案 0 :(得分:0)
我在Swish上测试时你的代码是有效的,它产生了请求的结果。
您获得的错误通常来自错误的语法,例如额外的逗号或括号问题。检查你剩下的代码。此外,您可能会发现http://swish.swi-prolog.org/适合此类调试。