100% tevredenheidsgarantie Direct beschikbaar na je betaling Lees online óf als PDF Geen vaste maandelijkse kosten 4.2 TrustPilot
logo-home
Samenvatting

Prolog samenvatting

Beoordeling
4,5
(2)
Verkocht
4
Pagina's
8
Geüpload op
02-05-2021
Geschreven in
2020/2021

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.










Oeps! We kunnen je document nu niet laden. Probeer het nog eens of neem contact op met support.

Documentinformatie

Geüpload op
2 mei 2021
Aantal pagina's
8
Geschreven in
2020/2021
Type
Samenvatting

Onderwerpen

Voorbeeld van de inhoud

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.

Beoordelingen van geverifieerde kopers

Alle 2 reviews worden weergegeven
2 jaar geleden

4 jaar geleden

4,5

2 beoordelingen

5
1
4
1
3
0
2
0
1
0
Betrouwbare reviews op Stuvia

Alle beoordelingen zijn geschreven door echte Stuvia-gebruikers na geverifieerde aankopen.

Maak kennis met de verkoper

Seller avatar
De reputatie van een verkoper is gebaseerd op het aantal documenten dat iemand tegen betaling verkocht heeft en de beoordelingen die voor die items ontvangen zijn. Er zijn drie niveau’s te onderscheiden: brons, zilver en goud. Hoe beter de reputatie, hoe meer de kwaliteit van zijn of haar werk te vertrouwen is.
dalayna03 Universiteit van Amsterdam
Bekijk profiel
Volgen Je moet ingelogd zijn om studenten of vakken te kunnen volgen
Verkocht
76
Lid sinds
4 jaar
Aantal volgers
50
Documenten
6
Laatst verkocht
1 maand geleden

3,9

13 beoordelingen

5
5
4
3
3
4
2
1
1
0

Recent door jou bekeken

Waarom studenten kiezen voor Stuvia

Gemaakt door medestudenten, geverifieerd door reviews

Kwaliteit die je kunt vertrouwen: geschreven door studenten die slaagden en beoordeeld door anderen die dit document gebruikten.

Niet tevreden? Kies een ander document

Geen zorgen! Je kunt voor hetzelfde geld direct een ander document kiezen dat beter past bij wat je zoekt.

Betaal zoals je wilt, start meteen met leren

Geen abonnement, geen verplichtingen. Betaal zoals je gewend bent via iDeal of creditcard en download je PDF-document meteen.

Student with book image

“Gekocht, gedownload en geslaagd. Zo makkelijk kan het dus zijn.”

Alisha Student

Veelgestelde vragen