0

私はプロローグの完全な初心者です。だから、誰かが私が行くべき正しい方法を私に案内してください!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であり、比較できないなどのエラーが発生します。

4

1 に答える 1