我是prolog中的新手。所以请任何人指导我正确的方式!我有两个参数 CctypeInt 和 Ru1,下面的关系说:如果 CctypeInt 是 0,那么 Ru1 是一个列表 {2,3,4},如果 CctypeInt 是 1,Ru1 是一个列表 {2,3,4},CctypeInt 是 2 Ru1 是具有一个元素 {2} 的列表
relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),
这里一切正常。但还有第三个参数可以采用如下所述的值:
(
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 is a range 0..2 并且无法比较。