[EMAIL PROTECTED] wrote:

hi,
Aloha

i want to read data from the file (data.txt). and want to use these prolog 
predicate like
a(book)
a(computer)
a(phone)
a(pen)
a(pencil)
Unless you use a read option for end_of_term, your term data should have the 'dot' delimeter, e.g.,

   a(book).
   a("computer").
   a("phone").
   a('pen').
   a('pencil').

Also note the distinction between an list of characters (using the double quote) and an atom (using the single quote). This is most easily seen using the writeq/1 predicate, as in,

   terms(A) :-
       see(A),
       repeat,
       read(B),
       writeq(B),
       nl,
       (   B = end_of_file ->
           true, !
       ;   fail
       ),
       seen.

This predicate results in the output,

 | ?- terms( 'term_data.txt' ).
 a(book)
 a([99,111,109,112,117,116,101,114])
 a([112,104,111,110,101])
 a(pen)
 a(pencil)
 end_of_file

 yes

Did you really need to use read_atom/1 or perhaps read_token/1 ?

more,
l8r,
v


--
"The future is here. It's just not evenly distributed yet."
-- William Gibson, quoted by Whitfield Diffie



_______________________________________________
Users-prolog mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to