Did you know ... Search Documentation:
 Pack evil -- prolog/hellgates.pl

An expansion of the Evil Prolog, this module allows you to follow the example of so many heroes such as Orpheus, Aeneas and Odysseus: denounce the garish light of day and use these Gates for a trip in the netherworld!

This module allows you to use more sophisticated binary operators than the trivial ',' and ';' hence enriching your prolog program. Combined with the closed-world hypothesis and unification issues, this module will definitely boost your reasoning powers unless you abandon all hope of understanding your program

author
- Thanos Tintinidis <thanosqr@gmail.com>
version
- 1.0
- http://en.wikipedia.org/wiki/Gates_of_hell
deprecated
-
- This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See the file COPYING in the project root directory or consult http://www.wtfpl.net/txt/copying for more details.
To be done
- Hell has no bottom; therefore, this module is damned eternally in a state of flux
and(X:term, Y:term) is semidet
Pascal and other similar languages are so much easier to read with their actual words instead of punctuation.
or(X:term, Y:term) is semidet
Pascal and other similar languages are so much easier to read with their actual words instead of punctuation.
nand(X:term, Y:term) is semidet
Wanna give your co-workers a stroke? Then use a Sheffer stroke, also known as NAND; it is, after all, the only operator required for a functionally complete set, right?
```1=1 nand 1=1.  %% false
1=1 nand 1=2.  %% true
1=2 nand 1=1.  %% true
1=2 nand 1=2.  %% true```

But what happens when something is not fully instantiated?

```T=1 nand T=2.  %% true
T=1 nand T=1.  %% false```
andn(X:term, Y:term) is semidet
Some tasks may require a different behaviour from nand/2 so we included some alternate ways of handling non instantiated variables:
`T=1 andn T=2. %% false`
nor(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
orn(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
X:term xor Y:term is semidet
Left mostly undocumented to stem some of the tide of evil.
orx(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
xnor(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
norx(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
xorn(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.
ornx(X:term, Y:term) is semidet
Left mostly undocumented to stem some of the tide of evil.