Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[問題] Prolog的符號: "\+"和"!"是甚麼?

0 views
Skip to first unread message

���i��

unread,
Dec 24, 2009, 2:20:35 AM12/24/09
to
�b�g�{���ɥH�άݻ���ɬݨ�o�DzŸ��A�i�O�٬O���O�����L���N��A�Q�аݦU��j�j�o
��ӲŸ�����??

--

--
�� �o�H��: �����~�{(ptt.cc)
�� From: 114.45.120.140

��

unread,
Dec 24, 2009, 1:05:14 PM12/24/09
to
�� �ޭz�mr596twy (���i��)�n���ʨ��G
: �b�g�{���ɥH�άݻ���ɬݨ�o�DzŸ��A�i�O�٬O���O�����L���N��A�Q�аݦU��j�j�o
: ��ӲŸ�����??

\+/1 �O�ˬd�@��goal���i�ҩ�u��predicate,�N�q���� not/1.
�Ҧp \+(atom(a)) ���׬Ofalse,�� not(atom(a)) �@��.


! �N���O�u�Ҹ����F. ! �Ocut,��{�����޿赲�c�����@�ǪK�`.
�򥻤W, ! �X�{�b�{�������N��,�O:
�p�G�b ! ���䪺predicates����,�N��b ! ����head�ۦP���{�����.
�p�G�b ! ���䪺predicates������,�N��P�@��{�� ! �k�䪺predicates���.

�Ҧp�n���ӧP�_,�p�G�bN�j��0�������,N�p��ε���0�S�Ӱ�����O,�{�����ӬO�o��:
p(N, E1, E2) :- N > 0, call(E1).
p(N, E1, E2) :- N =< 0, call(E2).
�G��{����head�ۦP,��Ĥ@��@�w�n�P�_ N>0, �ĤG��@�w�n�P�_ N=<0.
�p�G�ĤG��S��P�_ N=<0,���״N���@�ˤF.
��p�G�ϥ� ! (cut)...

p(N, E1, E2) :- N > 0, !, call(E1).
p(N, E1, E2) :- call(E2).

�Ĥ@��|��P�_ N>0,�p�G���ߴN���call(E1),�ñN�ĤG��{�����.
�p�G�Ĥ@�檺 N>0 ������,�N�����call(E1),�������h����ĤG�檺call(E2).

�A�|�ӨҤl,�޿�_�w not/1 �Ψ� ! �o�˰�:
not(A) :- call(A), !, fail.
not(_).

--
�� �o�H��: �����~�{(ptt.cc)

�� From: 59.112.225.39

0 new messages