我想为变量R
分配一个值,但该值取决于条件。
if (cond1)
var = value1 + 5;
else if (cond2)
var = value1 + 10;
else
var = value2 + value3 + value4;
这是我尝试的方法,但是如果第一个条件失败,则会为var分配一个值,使得之后的边界失败。
[...], (cond1 -> Var is value1 + 5;
cond2 -> Var is value1 + 10;
Var is value2 + value3 + value4
), [...]
答案 0 :(得分:1)
Prolog中没有任何作业,只是统一。以下可能有效:
您将R
与规则foo
foo(Value, R)
规则foo
可以按如下方式构建:
foo(Value, X) :- cond1, !, X is Value + 5.
foo(Value, X) :- cond2, !, X is Value + 10.
foo(Value, X) :- X is whatever.
答案 1 :(得分:1)
这是我的错误:R已经在条件之前统一了(在[...]部分中),结果是这样的:
100 is 40 + 39 + 20 <--- FAIL
更改变量的名称解决了它。