私はプロローグの完全な初心者です。だから、誰かが私が行くべき正しい方法を私に案内してください!2つのパラメータCctypeIntとRu1があります。以下の関係は次のようになります。CctypeIntが0の場合、Ru1はリスト{2,3,4}であり、CctypeIntが1の場合、Ru1はリスト{2,3,4}であり、CctypeIntは2です。 1つの要素を持つリスト{2}
relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),
ここではすべてが正常に機能しています。ただし、以下で説明するように値をとることができる3番目のパラメーターがあります。
(
CctypeInt is 0 then Ru2 is -1
;CctypeInt is 1 and Ru1 is 2 then Ru2 is [2,3,4]
;CctypeInt is 1 and Ru1 is 3 then Ru2 is [2,3]
;CctypeInt is 1 and Ru1 is 4 then Ru2 is 2
;CctypeInt is 2 then Ru1 is 2 then Ru2 is 2
),!.
私は同じために以下のコードを試しました。
(
CctypeInt=:=0->Ru2 is -1
;CctypeInt=:=1,Ru1 =:= 2->Ru2 is [2,3,4]
;CctypeInt=:=1,Ru1 =:= 3->Ru2 is [2,3]
;CctypeInt=:=1,Ru1 =:= 4->Ru2 is 2
;CctypeInt=:=2->Ru1 is 2,Ru2 is 2
),!.
しかし、CctypeIntが範囲0..2であり、比較できないなどのエラーが発生します。