LINUX.ORG.RU

идеотский вопрос по прологу


0

0

программа на прологе, использую swi: -- father(1,2). father(2,3). mother(10,2).

ded(x,y):-father(x,z),father(z,y). ded(x,y):-mother(x,z),father(z,y). -- собираю, запускаю, пишу ded(1,3). в ответ No, почему? по идее должно применится сначало первое выражение для деда, ded(x,y):-father(x,z),father(z,y). потом будет подставляется по месту father соотвецтвуюше факты, и врезультате найдется последовательность 1,2 2,3 почему так непроисходит ?

anonymous

pi pi-laptop:~ [3]% cat test.pl
father(1,2).
father(2,3).
mother(10,2).
ded(X,Y):-father(X,Z),father(Z,Y).
ded(X,Y):-mother(X,Z),father(Z,Y).
pi pi-laptop:~ [4]% swipl      
Welcome to SWI-Prolog (Multi-threaded, Version 5.6.14)
Copyright (c) 1990-2006 University of Amsterdam.
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- [test].
% test compiled 0.00 sec, 1,072 bytes

Yes
?- ded(1,3).

Yes

Pi ★★★★★
()

имена переменных должны начинаться с большой буквы

Reset ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.