Я использовал штуку gprolog, чтобы делать некоторые вещи в прологе. Но теперь, тестируя еще какой-то код, я обнаружил, что он не поддерживает "false". Что поддерживает swi?
Почему пролог gnu не поддерживает ложный предикат? (Я перешел на swi)
Ответы (2)
Используйте fail
вместо false
. Я считаю, что первое входит в стандарт ISO для Prolog. В противном случае определите это самостоятельно:
false :- 0=1.
or
fail :- 0=1.
person
Fred Foo
schedule
12.11.2010
Разве
false :- fail.
не было бы более четким определением, поскольку вы каким-то образом подразумеваете, что они имеют одинаковый эффект и / или являются синонимами?
- person Giulio Piancastelli; 13.11.2010
Я имел в виду: если ни один из них не доступен, вот как реализовать один из них. Изменил свой ответ.
- person Fred Foo; 13.11.2010
А пока в ISO Prolog есть и
fail
, и false
. Он доступен в GNU и многих других системах.
- person false; 17.02.2012
Последние версии GNU Prolog (1.4.0) действительно поддерживают false/0
.
false/0
не определен в исходном стандарте ISO 1995 г., но является частью Кор.2: 2012.
person
false
schedule
14.11.2010