Is “almost pure” Prolog expressive?
问题 @false commented earlier: Yes, you can implement a Turing machine without dif/2 . But you cannot even implement intersection or similar predicates. Suppose we do extend pure Prolog (Horn FOL + CWA + UNA) with call/N , dif/2 , and (=)/3 , to be used in if_/3 , would there still be gaps in its expressiveness, i.e. things that are trivial to define in, say, Scheme, but are much harder to state in such extended (almost pure) Prolog? In particular, does such a Prolog allow manipulating Prolog