io - read a file into a list [prolog] -


i have log entries include 4 different terms.

log(name1,surname1,street1,belgium). log(name2,surname2,street2,germany). log(name3,surname3,street3,france). log(name4,surname4,street4,france).  

i saved loginfo.pl. manage read these input file (loginfo.pl) not collect in "list".after need filter using condition " country begin letter 'f'.

so @ end want

[log(name3,surname3,street3,france),log(name4,surname4,street4,france)] 

use consult/1 load facts contained in file in prolog kb.

use atom_chars/2 split atom characters.

use findall/3 collect multiple solutions goal.

example:

?- [loginfo]. ?- findall(log(a,b,c,d), (log(a, b, c, d), sub_atom(d, 0, 1, _, 'f')), result). result = [log(name3, surname3, street3, 'france'), log(name4, surname4, street4, 'france')]. 

[loginfo] shorthand consult(loginfo).

also, if don't repeat yourself:

?- findall(x, (x=log(_, _, _, d), x, sub_atom(d, 0, 1, _, 'f')), result). result = [log(name3, surname3, street3, 'france'), log(name4, surname4, street4, 'france')]. 

note: in file loginfo.pl should put single quotes around atoms starting capital letters:

log(name1,surname1,street1,'belgium'). log(name2,surname2,street2,'germany'). log(name3,surname3,street3,'france'). log(name4,surname4,street4,'france'). 

read more prolog atoms @ prolog syntax - learn prolog now!


Comments

Popular posts from this blog

How has firefox/gecko HTML+CSS rendering changed in version 38? -

javascript - Complex json ng-repeat -

jquery - Cloning of rows and columns from the old table into the new with colSpan and rowSpan -