For Programmers: Free Programming Magazines  


Home > Archive > Prolog > May 2004 > hi again, is known/3 availbe in swi-prolog?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author hi again, is known/3 availbe in swi-prolog?
Chris Vasey

2004-05-04, 2:59 pm

hey again guys

cheers for the replies b4, made me decide on an easier
topic and it acutally works!

how ever i found various examples of asking the user for information and
made
my ask predicates based on what i've found, you guys mighta seen em b4 a few
times.

anyways, i get an error:
"ERROR: Undefined procedure: known/3
Exception: (10) ask(induction, turbo) ? "

when i call car(X). the commented-out ask predicate works beautifully,
however the larger one(s)
i have here dun werk , and are meant to prevent backtracking to the top of
the tree (i think).

is known/3 availble in swi-prolog? or have i missed sumin? 've tried
copying/pasting full xamples and still
no luck:(

an help would be so appreciated

chris

ps : don't larf at my new topic

/*the possible nissan skylines*/

car(skyline_r32_gtr):-
model(gtr),
tailLights(round_indicator_round).
car(skyline_r33_gtr):-
model(gtr),
tailLights(round_round).
car(skyline_r34_gtr):-
model(gtr),
tailLights(large_round_round).
car(skyline_r32_gtst):-
model(gtst),
tailLights(round_indicator_round).
car(skyline_r33_gtst):-
model(gtst),
tailLights(round_round).
car(skyline_r34_gtst):-
model(gtst),
tailLights(large_round_round).
car(skyline_r32_gts):-
model(gts),
tailLights(round_indicator_round).
car(skyline_r33_gts):-
model(gts),
tailLights(round_round).
car(skyline_r34_gts):-
model(gts),
tailLights(large_round_round).

/*the possible other nissans*/
car(180sx):-
headlights(pop_up),
size(small),
driveline(rear_wheel),
induction(turbo).
car(silvia_s13_Ks):-
model(ks).
car(silvia_s13_Q):-
driveline(rear_wheel),
induction(natural).


driveline(four_wheel_drive):-
oversteer(no).
driveline(rearwheel):-
oversteer(yes).


model(ks):-
induction(turbo),
driveline(rear_wheel),
size(small).
model(gtr):-
induction(turbo),
driveline(four_wheel_drive).
model(gtst):-
induction(turbo),
driveline(rear_wheel).
model(gts):-
driveline(rear_wheel).


driveline(X) :- ask(driveline, X).
induction(X) :- ask(induction, X).
oversteer(X) :- ask(oversteer, X).
tailLights(X) :- ask(tailLights, X).
headlights(X) :- ask(headlights, x).
size(X) :- ask(size, X).



ask(A, V):-
known(yes, A, V),
!.

ask(A, V):-
known(_, A, V),
!, fail.

ask(A, V):-
write(A:V),
write('? : '),
read(Y),
asserta(known(Y, A, V)), /% HERE IS WHERE I THINK THE PROBLEM IS?*/
Y == yes.


/*ask(X, Y):-
write(X : Y),
write('? :'),
read(yes).*/



Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com