Ross
Ross

Reputation: 46987

Prolog gives error "undefined procedure" when trying to use :-

I'm using SWI-Prolog on Windows and am getting the following error:

14 ?- parent(X, Y) :- child(Y, X).
ERROR: toplevel: Undefined procedure: (:-)/2 (DWIM could not correct)

I'm not entirely sure what's going on, as this worked last week and I am just starting to learn Prolog.

Upvotes: 14

Views: 30588

Answers (2)

Volodymyr Gubarkov
Volodymyr Gubarkov

Reputation: 2183

You can try it this way

1 ?- assert(a(A,B):-A=B).
true.

2 ?- a(B,c).
B = c.

Upvotes: 6

horsh
horsh

Reputation: 2779

The FAQ says it all: http://www.swi-prolog.org/FAQ/ToplevelMode.html

You need to create a file and write your program with rules there. The top level command line will only allow you to issue queries.

Upvotes: 21

Related Questions