14

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.

false
  • 10,264
  • 13
  • 101
  • 209
Ross
  • 46,186
  • 39
  • 120
  • 173

2 Answers2

21

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.

Alexander Gorshenev
  • 2,769
  • 18
  • 33
  • 4
    Ah I understand now, I assumed it was similar to Python's interactive mode. Thanks! – Ross Mar 23 '11 at 11:35
6

You can try it this way

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

2 ?- a(B,c).
B = c.
Volodymyr Gubarkov
  • 2,173
  • 20
  • 20