פרולוג (שפת תכנות) – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ שוחזר מעריכות של 109.65.20.136 (שיחה) לעריכה האחרונה של 84.228.163.154
מ שימוש בתגית source
שורה 9:
תכנות בפרולוג מורכב משני סוגי הצהרות: עובדות וכללים.
עובדה עשויה להיות מוגדרת ביטוי פשוט (אטום):
<source lang="prolog">
.summer
</source>
שאפשר להתייחס אליו כאל הטענה "עכשיו קיץ". עובדות יכולות גם להגדיר יחס על איבר בודד (פרדיקט), כגון
<source lang="prolog">
.(male(orel
.(tallmale(orel
.(maletall(orel
</source>
שמגדירים את המשתנה orel להיות "זכר" ו"גבוה". או על מספר איברים ואז תגדיר יחסים, כגון:
<source lang="prolog">
.(love(yoni, rotem
</source>
שמגדיר שיוני "אוהב את" רותם. יש לשים לב שאף אחת מהמילים tall, love, yoni, rotem, איננה מוגדרת בשפה עצמה, ומשמעות מתקבלת מהמשך השימוש במשתנים אלו.
 
סוג שני של הצהרות בשפה הוא כלל. למשל
<source lang="prolog">
.(love(rotem, X) :- male(X), love(X, rotem
</source>
שמגדירה שרותם אוהבת מישהו (X כאן הוא משתנה, כמו כל מילה שמתחילה באות גדולה) אם X אוהב את רותם.
נגדיר כעת כלל נוסף:
<source lang="prolog">
.(married(X,Y) :- summer, love(X,Y), love(Y,X
</source>
כלל זה אומר ש-X ו-Y "נשואים" אם "עכשיו קיץ" וגם X "אוהב את" Y וגם Y "אוהב את" X.
 
לאחר שמגדירים עובדות וכללים, ניתן לשאול שאלות על מאגר הנתונים שבנינו. מי נשואים?
<source lang="prolog">
.(married(X,Y -?
</source>
והמפרש יגיב
<source lang="prolog">
X = yoni
YX = rotemyoni
Y = rotem
</source>
 
בגלל המבנה התיאורי, היכולת לנסח חוקים בצורה מופשטת ומנגנון ההוכחה המובנה, תוכניות פרולוג נוטות להיות קצרות ואלגנטיות מאד.