Professional Documents
Culture Documents
@ @Prolog @òÌÜÛ@݆ß
@ @Zò߆Խa
Programing in
א אWPROLOG אوج
Alan &'()*+,א$%+-.-/ذ% $وم ! هذ" אKLogic .
0123-.&א$'45 67(א8*9و،.;%< -2،Colmeraur
2 =5>) و5 $9 7*?'@ن مא *نBC; %D$' אE9F א
K١٩٨١م.אG-+9+7H2I-Jא3K;א%;L+
@ @ZProlog@òÌÛ@paŒî¾
WLQאR;%P$'אوج.L
K(5و+Tא-$.(אF.L27),*&$'.LU-א+9&$'')LL١
Kאج+WXلوאWدXوאא2![Dوא4+9אFאBC+H;א\لאG-G[]L٢
Ksimplisiy in codingא4+,_א97%L٣
E ef وذESource CodeFU-*$(5 א4+, _א2![D \ א+ab]L٤
אمk%fوذDepuggingbD אEeوCopilationghوאijא$'
K$)>+אl> JאG-mوאKTracing Facilityg;\אW
KU-*!אhl$LBCoدpL4(+aq(مU-אא9R$%L٥
K$-[אאG-.LL٦
f $]ً T( وu>_ א. وא\ لא,$אg -3 -.א24 زwא5 7( L٧
4ودx -) وy?א- .אfF 9 وyوאDD ' אدאP ) *[-א
KL+א9+2مk)Lmوאbit-wisegودوאلאz$z)وאyوאلא
@ @ZProlog@òÌÛ@¿@Statements@Ýà¦a@pbãìØß
@ @@ZÕöbÔy@Facts@OQ
G'45;'yوא،Prolog2%%}א4{وא5.>|وאyא3z]و
?- . >وא%אG - 'وHeadس5G -([ نpredicate )-
KEArgumentsF
Head (Arguments) Predicate
،E$'وא6FWאy?ًאz-FW
WLQ9prolog2Clauses$h97$z]G[mوא
father (mohamed,ali).
1
Muhammad Siddig H.
@ @@Z†ÇaìÓ@Rules@OR
K
+WG-yل%جوא%אG-G[]4'א
Wلאzن(א9ذאC
ali likes ahmed
noha likes sami
aser likes noha
W&ن$'lL(و
yaser likes everything noha likes
ن4(&ود$'*)ل$'
yaser likes sami
Wprolog27$z].a
likes (ali,ahmed).
likes (noha,sami).
likes (aser,noha).
likes(yaser,X) :- likes(noha,X).
{uنא9@ذאa
likes(yaser,sami).
KYesوTrue([نRאK@نאa
bL4'f(وKن$%$'ونوא،$'
ووא8$'אذאWً?za
E}K'?א
father (ahmed,ali).
father(salman,ahmed).
grandfather(X,Y):-father(X,Z),father(Z,Y).
ج%\ل$.;א7T.g-|>y*א854'[نאL'
K.-
@ @@ZòÜ÷c@Queries@OS
K'>|وאאy&א$'5;W[(م$!אj-BCLmא$q%وא
' >|وאאy q$- a+.-4 ' %yא3 .Prolog نfF
K?.وא
! (m وאE $' ن$ %FنG - 9*وU )*( ن+*| ) لאzאG -
Wא3[_79
grandfather(salman,ali).
2
Muhammad Siddig H.
@ @prolog@òÌÛ@ÝîÌ’m
StartAll programs
SWI-PrologProlog
٢3[_א293.אProlog5+6نh
WProlog5+6(6
3
Muhammad Siddig H.
$4'אq7L<و$אF,LEא+XL٤
،Compile&$'T*u?WG-א5),%א
+-}وאCompile Buffer+-}א5W!אe
$א5+64Fa
+W4+-ع+!אeKMake
K,$kאא5),%א
4
Muhammad Siddig H.
@ @Z´îö‰@´àÓ@µg@Prolog@¿@szjÛa@pbîvîmaa@áÔäm
@bß@ìçë@…ìäjÛaë@pajÈnÛa@´ië@bç‹aŠyg@lìÜĐ½a@Òa†çþa@´i@ÕÏaìnÛa@òîÜàÇ@óÜÇ@Ýàn’í@ZÞëþa@áÔÛa@MQ
@ @NHUnificationI@†îyìnÛa@òîÜàÈi@ÒŠÈí
@ @ZÙÛ‡@|™ìí@ïÛbnÛa@Þbr½aë
likes (ali,ahmed).
likes (noha,sami).
likes (aser,noha).
@ @ZÒ†a@æb×ë
@ @likes(X,Y).
ذאCD*[نLEClausesFوא;د3KאG-'א{و$'
Wن9
5
Muhammad Siddig H.
@ @NbèÔîÔ¤@ëc@Òa†çþa@‹aŠy⁄@Þìܧa@åÇ@szjÛa@¿@áØznm@Ñî×@òa‰…@óÜÇ@Ýàn’íë@ZïãbrÛa@áÔÛa@MR
@ @ZÙÛ‡@|™ìí
likes (ali,ahmed).
likes (noha,sami).
likes (aser,noha).
@ @ZÒ†a@æb×ë
likes(aser,Y).
@ @ïÐܨa@ÝÜnÛaë@ïßbßþa@ÝÜnÛa
@ @@ZForward tracking@@ïßbßþa@ÝÜnÛa
6
Muhammad Siddig H.
7
Muhammad Siddig H.
8
Muhammad Siddig H.
@ @Lists@áöaìÔÛa
K7) 7,\L !( ، *; א9א+L %% G- !> אא.L •
3 ,$$\,אمאk%אg-، [ ].+-%3Wא>دא+\'[L
K[1,2,3,4,5,6,7,8,9]ً?z-K>$*[א+\.א
*>سא5{+.(وKTail3(FوאHeadس+>אxBC>)!אL •
K>א+\'3(Fوא،>א2+ 'ول
K[X|Y]ً?z-K3(Fسوא+א3 ,$E |Fאx-+ אPrologمk)L •
KMatching!>|אאaאא$'2ًT(-k)L9
>3Wدא+ 'G'D;א
member(member_name,[member1,member2]).
Wa+.א4'2א>אf(ضنjaאWً?z-
[mohamed,ali,suliman,hamdan,mohmoud]
WU-*!אj4+H;-{אu*مאaliG'D;(א+**+aو
member(ali,[mohamed,ali,suliman,hamdan,mahmoud]).
-----------------------------------------------------------------------------------
*م، 3(F א3س א> و5 2 .- !% אG' D;{ אuن א9 ذאC
W{אuא
member(Name,[mohamed | _ ]).
----------------------------------------------------------------------------------
@ @NòÜ@Þì@Êbu‰hi@âìÔí@Prolog@wßbãŠi
mylength([],0).
mylength([_|Tail], Len) :-
mylength(Tail, TailLen),
Len is TailLen + 1.
KX=0.!j@نאamylength([],X). {uنא9@ذאa
KX=7.!j@نאa،mylength([a,b,c,d,e,f,g],X). {uنא9@ذאa
@ @ZòÜÜ@¿@ñ…ìuì½a@Š•bäÈÛa@Éà@âìÔí@Prolog@wßbãŠi
sum([],0).
sum([Head|Tail],X):-
sum(Tail,TailSum),
X is Head+TailSum.
KSum=6!j@نאa،sum([1,2,3],Sum). {uنא9@ذאa
9
Muhammad Siddig H.
@ @Recursion@‰aŠØnÛa
!%א4')-?'و4'<\L!(-'،4+-+z95א+[א$'Eא+C!(
K7),*?.وא4'א
K.?لאWG-N!د.אRو+T-R)y،Prolog R[-אU-*אW?
ً z-
W(x-+א
factorial (0,1).
factorial (N,Res) :-
N>1,
N1 is N-1,
factorial(N1,FacN1),
Res is N*FacN1.
W$!אj{אuאL.a
factorial(2,Answer).
Answer=2. !jدא5'([ن
@ @Zòî™bíŠÛa@pbîÜàÈÛa
FalseوTrueد+'([نאE3>5F-$.א8*9ذאC
E=Foא)و-?'G'ًis$99G-(5$.א8*9ذאC-C
WProlog!jאא5),%}אL'Wא$z-}אFW
1?- X=3+5.
X=3+5. W!j@نאa
K *$)$)9ULאg5وא-45 ?-.نא5و([ن
WLQאaC'G[
2?- X is 3+5.
X=8. !jאC[نL
3?- X is 3-5.
X= -2. !jאC[نL
4?- X is 3/5.
X=0.6. !jאC[نL
5?- X is 3*5.
X=15. !jאC[نL
10
Muhammad Siddig H.
@ @òî™bíŠÛa@Þaë†Ûa
@ @ZïÈîiÛa@‰ˆ¦a@òÛa…
1?- sqrt(10,X).
X=3.1622776601683795 !jאC[نL
@ @ïÈîjĐÛa@áríŠËìÜÛa@òÛa…
2?- log(1,X).
X=1.0. !jאC[نL
@ @HLNI@QP@÷bÿÛ@áríŠËìÜÛa@òÛa…
3?- log10(1,X).
X=0.301029995. !jאC[نL
@ @@òÔÜĐ½a@òàîÔÛa@òÛa…
4?- abs(-3,X).
X=3. !jאC[نL
@ @ZòàÔÛa@ïÓbi@òÛa…
5?- X is 10 mod 20.
X=10. !jאC[نL
@ @òîrÜr½a@Þaë†Ûa
@ @kî¦a@òÛa…
6?- sin(0,X).
X=0.0. !jאC[نL
@ @âbànÛa@kîu@òÛa…
7?- cos(0,X).
X=1.0. !jאC[نL
3دאא
8?-tan(0,X).
X=0.0. !jאC[نL
@ @
11