0% found this document useful (0 votes)
29 views2 pages

Prolog Howto

Prolog Howto

Uploaded by

choconlilom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views2 pages

Prolog Howto

Prolog Howto

Uploaded by

choconlilom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Programming Languages Course Note

Running GNU Prolog at Your PC


Tyng-Ruey Chuang
2009-06-03
We will be using GNU Prolog (gprolog). Download GNU Prolog from http://www.gprolog.org/ where
you will find pre-built systems for Ubuntu, Mac OS X and Windows that can be readily installed on Intelbased PCs. There are also source files and instructions on how to build the system on other machines.
Read pp. 1319 of the manual GNU Prolog A Native Prolog Compiler with Constraint Solving over
Finite Domains (Edition 1.9, for GNU Prolog version 1.3.1, February 10, 2009). The PDF file for the
manual is available at http://www.gprolog.org/manual/gprolog.pdf .
Make sure you have properly installed the GNU Prolog (gprolog) system.
Type gprolog after the console prompt. Now, you should be in the GNU Prolog top-level. To leave
gprolog, simply type controlD. To interrupt computation in gprolog, type controlC.
The following is a transcript of how the gprolog top-level looks like. ^D stands for controlD.
[trc@localhost pl-course]$ gprolog
GNU Prolog 1.2.16
By Daniel Diaz
Copyright (C) 1999-2002 Daniel Diaz
| ?- [user].
compiling user for byte code...
even(0).
even(s(N)) :- odd(N).
odd(s(N)) :- even(N).
^D
user compiled, 5 lines read - 483 bytes written, 42164 ms
yes
| ?- even(0).
yes
| ?- even(s(s(s(s(0))))).
yes
| ?- even(N).
N = 0 ? ;
N = s(s(0)) ? ;
N = s(s(s(s(0)))) ? ;
N = s(s(s(s(s(s(0)))))) ? ;
N = s(s(s(s(s(s(s(s(0)))))))) ?
yes
| ?- odd(s(s(N))).

N = s(0) ? ;
N = s(s(s(0))) ?
yes
| ?- odd(0).
no
| ?- ^D
[trc@localhost pl-course]$
You can also put your prolog program in a file, and have the GNU Prolog top-level read from the file. As
an example, suppose file membership.pl is in your working directory, and it contain the following text.
membership(X, [X|_]).
membership(X, [_|T]) :- membership(X, T).
You then can consult file membership.pl in GNU Prolog by the following:
[trc@localhost pl-course]$ gprolog
GNU Prolog 1.2.16
By Daniel Diaz
Copyright (C) 1999-2002 Daniel Diaz
| ?- [membership].
compiling /home/trc/work/pl-course/membership.pl for byte code...
/home/trc/work/pl-course/membership.pl compiled, 3 lines read - 503 bytes written, 20 ms
yes
| ?- membership(X, [a, b, b]).
X = a ? ;
X = b ? ;
X = b ? ;
no
| ?- ^D
[trc@localhost pl-course]$

You might also like