2016-10-27 9 views
0

私はPrologを初めて使いました。私が達成したいのは、私のプログラムに保存されている2つのリストの上にappend/3のような操作を実行することです。私はスイフトプロローグを開き、X=[a,b,c,h,j,k]を得るためにappend([a,b,c],[h,j,k],X).とタイプする必要はありません。私が必要とするのは、プログラムから2つのリストを取り出して、それらの上に追加することです。 Prologで取得したいものがあるかどうかわかりません。Prologのリストの操作

これが私の状況です:私はSWI-から「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」ファイルを得ましたそれをプロローグと尋ねる:

personal_union(family,colors,X). 

、統一リストを入手:

X=[alessandro,cinzia,fabio,blu,giallo,lilla,verde,rosso]` 

は可能な解決策私のコードですか? 構文エラー:不正な開始の文字列は、エラーが私のルールの本文の先頭にあることを示しています。

答えて

0

あなたのコードはSwishでテストしたときに有効です。要求された結果が得られます。

エラーは通常、カンマや角かっこなどの誤った構文から派生しています。残りのコードを確認してください。また、そのようなデバッグにはhttp://swish.swi-prolog.org/が快適でしょう。

+0

私はエラーの通知にもかかわらずプログラムに質問し、私が探していたものを手に入れました。ありがとうございました! –

+1

@AlessandroSassi:この回答を受け入れるべきです... – CapelliC

+0

@AlessandroSassiどのようなエラーが表示され、なぜ表示されているのかまだ明確ではありません。 –