Пролог условно не оценивает - PullRequest
0 голосов
/ 28 октября 2009

Я пытаюсь сделать условное выражение в прологе так:

((Жизнь == мертв) -> Транс = нет)

.

Я думал, что вышеприведенный код будет оцениваться так, как будто Life == мертв, тогда Trans = нет, но по какой-то причине его нет? Спасибо.

1 Ответ

3 голосов
/ 28 октября 2009

у меня работает:

?- ((Life==dead)->Trans=no).
false.

?- Life = dead, ((Life == dead) -> Trans=no).
Life = dead,
Trans = no.

Жизнь == мертвых будет правдой только в том случае, если Жизнь уже связана с мертвыми.

Кроме того, это довольно странная конструкция, которая редко требуется на практике, (x -> y; z) встречается гораздо чаще.

...