100% tevredenheidsgarantie Direct beschikbaar na betaling Zowel online als in PDF Je zit nergens aan vast
logo-home
Prolog samenvatting €2,99
In winkelwagen

Samenvatting

Prolog samenvatting

2 beoordelingen
 129 keer bekeken  3 keer verkocht

Deze samenvatting is vooral een goed overzicht van alles wat er per week aan bod is gekomen. De standaardbegrippen en -concepten worden uitgelegd. Ook bepaalde operatoren of functies die veel worden gebruikt staan erin.

Voorbeeld 2 van de 8  pagina's

  • 2 mei 2021
  • 8
  • 2020/2021
  • Samenvatting
  • prolog
Alle documenten voor dit vak (2)

2  beoordelingen

review-writer-avatar

Door: ngawangtsarong • 1 jaar geleden

review-writer-avatar

Door: lexwmulder • 3 jaar geleden

avatar-seller
dalayna03
SAMENVATTING PROLOG Universiteit van Amsterdam (2020/2021)

Hoorcollege 1:
declaratief programmeren: speciferen wat er berekend moet worden (opdrachten van het specificeren van
het probleem en het oplossen ervan zijn gescheiden).
In een recursie regel roept het predicaat zichzelf weer aan.
Prolog termen zijn variabelen, atomic terms (numbers en atoms) of compound terms.
Compound terms bestaan uit een functor en een aantal argumenten die ingesloten zijn in haakjes (vb.
Bigger(horse, X)).
Ground terms: termen zonder variabelen
De head van een rule klopt als alle goals die in de body van die rule staan ook kloppen.
Matching: twee termen matchen als deze identiek zijn of als deze identiek gemaakt kunnen worden door
instantiatie van variabelen.

Hoorcollege 2:
head: het eerste element van een lijst
tail: de rest van een lijst
De tail moet altijd een lijst zijn, de head moet dat niet, maar het kan wel.

Base case: meest algemene regel/feit.
Bij recursies haal je vaak steeds beetjes weg die je aan het einde een voor een allemaal weer aan elkaar
plakt.

Boek H1:
Een programma bestaat uit clauses (feiten, regels en vragen).
Een procedure is een set van clauses over dezelfde relatie.

Boek H2:
Elke functor is gedefinieerd door naam en arity (aantal argumenten)
De matching operation neemt twee termen en probeert deze identiek te maken.
Conjunction: ,
disconjunction: ;

Built-in predicaten
write/1
append/3 (twee lijsten samenvoegen)
length/2
reverse/2 (een lijst omdraaien)
member/2
fail/0 (faalt altijd)
last/2
select/3 (haalt een element uit de lijst in het tweede argument en het derde argument is de rest van die
lijst)
permutation/2

Hoorcollege 3:
Voor arithmetic (rekenkundig) evaluation gebruk je de built-in is2/ operator. Deze werkt zo dat de term
rechts van de operator geeavalueerd wordt als rekenkundige expressie en vervolgens wordt het nummer
dat hier uit komt gematcht met de term links van de operator.
De term aan de linkerkant is bijna altijd een variabele.

Arithmetical functions:
max/2 () geeft het grootste nummer van twee nummers.
Sqrt/1 (wortel)

, mod/2 (deelt het linkercijfer door het rechtercijfer tot het laatste gehele getal dat het kan geven, het
resultaat is hetgeen dat over blijft). Vb: (47 mod 7) = 5.
// (delen door)
round/1 (van een float naar de dichtsbijzijnde integer)
** (tot de macht van)

arithmetic relations:
=:= arithmetic equality (hiermee wil je de gelijkheid van twee rekenkundige expressies vergelijken)
=\= arithmetic inequality
> greater than >= greater than or equal
< less than =< less than or equal

= kan je gebruiken voor matching

is/2 moet niet gebruikt worden om gelijkheid van twee rekenkundige expressies te checken.

Hoorcollege 4:
Gebruik van operators maken sommige dingen makkelijker voor ons om te lezen.
Precedence (tussen 0 en 1200) zegt iets over hoe bindend een operator is.
Hoe lager de precedence, hoe sterker de operator bindt.
Als de principal functor niet (geschreven als) een operator is of als de term in haakjes is ingesloten, dan is
de precedence 0.
Drie types operators: infix (3 + 5), prefix (-7), postfix (6!).
Een standaard prolog implementatie heeft een associativiteit naar links.

Operator patterns:
• yfx: infix, left-associative (+, -, *)
• xfy: infix, right-associative (,)
• xfx: infix, non-associative (=, is, <)
• fy: prefix, associative (-5)
• fx: prefix, non-associative (?-, :-)
• yf: postfix, associative
• xf: postfix, non-associative
y zegt wat over naar welke kant de associativiteit is.

Met de built-in predicate current_op(Precedence, Associativity, Operator) kan je gegevens van een operator
checken.
:- op(200, fy, small). (zo definieer je een operator)
met =../2 kan je een lijst maken waarvan de head de functor van een term is en de tail zijn de argumenten
ervan.

Een operator is well-defined wanneer er een associativity is.
Wanneer Prolog niet goed weet hoe deze een bepaalde term moet bekijken is er sprake van ambiguity.

Week 3
choice-points: subgoals die op verschillende manieren kunnen slagen.
Wanneer Prolog een bepaald doel wilt laten slagen, houdt deze alle choice-points bij, zodra een subgoal
faalt, gaat Prolog terug naar het meest recente choice-point.
Enforced backtracking: op ; klikken, zodat prolog alternatieve antwoorden geeft.
(Je zegt dan eigenlijk tegen Prolog van doe alsof het vorige antwoord niet klopte en geef me een ander
antwoord)

Voorkom dat Prolog gaat backtracken om foute antwoorden te vermijden en efficientie te verbeteren.

Voordelen van het kopen van samenvattingen bij Stuvia op een rij:

Verzekerd van kwaliteit door reviews

Verzekerd van kwaliteit door reviews

Stuvia-klanten hebben meer dan 700.000 samenvattingen beoordeeld. Zo weet je zeker dat je de beste documenten koopt!

Snel en makkelijk kopen

Snel en makkelijk kopen

Je betaalt supersnel en eenmalig met iDeal, creditcard of Stuvia-tegoed voor de samenvatting. Zonder lidmaatschap.

Focus op de essentie

Focus op de essentie

Samenvattingen worden geschreven voor en door anderen. Daarom zijn de samenvattingen altijd betrouwbaar en actueel. Zo kom je snel tot de kern!

Veelgestelde vragen

Wat krijg ik als ik dit document koop?

Je krijgt een PDF, die direct beschikbaar is na je aankoop. Het gekochte document is altijd, overal en oneindig toegankelijk via je profiel.

Tevredenheidsgarantie: hoe werkt dat?

Onze tevredenheidsgarantie zorgt ervoor dat je altijd een studiedocument vindt dat goed bij je past. Je vult een formulier in en onze klantenservice regelt de rest.

Van wie koop ik deze samenvatting?

Stuvia is een marktplaats, je koop dit document dus niet van ons, maar van verkoper dalayna03. Stuvia faciliteert de betaling aan de verkoper.

Zit ik meteen vast aan een abonnement?

Nee, je koopt alleen deze samenvatting voor €2,99. Je zit daarna nergens aan vast.

Is Stuvia te vertrouwen?

4,6 sterren op Google & Trustpilot (+1000 reviews)

Afgelopen 30 dagen zijn er 53068 samenvattingen verkocht

Opgericht in 2010, al 14 jaar dé plek om samenvattingen te kopen

Start met verkopen
€2,99  3x  verkocht
  • (2)
In winkelwagen
Toegevoegd