在Prolog中为给定列表中的变量赋值

时间:2016-05-29 18:24:57

标签: prolog

我想为变量赋值,两者都由我的解析器在列表中给出。所以基本上当我得到[x, =, 2]时,我想将2的值分配给x

我正在尝试做这样的事情,但它不断弹出false

assign_value(E, R) :-
   \+ find(=, E, _),
   R = E.
assign_value(E, R) :-
   find(=, E, R1),
   I1 is R1-1,
   I2 is R1+1,
   I3 is R1+2,
   nth0(I1, E, P1),
   nth0(I2, E, P2),
   P1 is P2,
   Result is P1,
   length(E, Length),
   extract(E, 0, I1, ListBefore),
   extract(E, I3, Length, ListAfter),
   append(ListBefore, [Result], Initial),
   append(Initial, ListAfter, Final),
   assign_value(Final, R).

有人可以帮忙吗?我有点困惑,因为我是Prolog的新手。

0 个答案:

没有答案