Tan K.Seang
Tan K.Seang

Reputation: 25

Prolog read predicate cant read user key in in initialization?

I want to have a prolog program which can auto run once I compile finish and it should read input from user keyboard. However when i use

:- write('Your name is: '), nl, read(X).

there is not any effect on read(X), which it means that there us not any prompt for users to key in. Is there any solution for this problem? My prolog compiler is WIN-Prolog 5.0, thanks for your helo :)

Upvotes: 1

Views: 265

Answers (1)

CapelliC
CapelliC

Reputation: 60014

maybe you need something like

:- initialization(main).  % changed to be ISO compliant, was :- initialization main.
main :- write('Your name is: '), nl, read(X).

at least, ISO Prologs do it in this way....

Since read/1 is meant to parse Prolog (it's a full fledged parser), you must supply a Prolog term, and don't forget, as Joel76 suggested, to complete input with a dot: for instance:

Your name is: 
|: 'Carlo'.

Upvotes: 0

Related Questions