Logic programming
23 belangrijke vragen over Logic programming
Wat is het verschil tussen enerzijds imperatieve en functionele programmeertalen en anderzijds logische programmeertalen?
[T15.1]
Noem twee verschillen tussen mappings en relations
- Mappings zijn in het algemeen many-to-one (een functie levert één resultaat op), terwijl relations many-to-many zijn.
- Bij relations wordt geen onderscheid gemaakt tussen inputs en outputs, relations kennen geen richting.
Wat zijn de drie key concepts van logisch programmeren?
- Assertions (beweringen)
- Horn-clausules
- Relations
- Hogere cijfers + sneller leren
- Niets twee keer studeren
- 100% zeker alles onthouden
Welke vier vormen kan een term in Prolog aannemen?
- Variable
- Numeric literal
- Atom
- Structure construction
Wat wordt bedoeld met de uitspraak relations abstract over assertions?
[T15.1]
Wat zijn twee essentiële kenmerken van een Horn-clausule?
- Er komt geen negatie in voor.
- Links van de if staat niet meer dan één assertie
Waarom voldoet Prolog niet aan het ideaal van logisch programmeren?
Dit wordt veroorzaakt door de wijze waarop resolutie in Prolog geïmplementeerd is.
[C15.4]
Wat wordt in het imperatieve paradigma onder een programma verstaan?
[C15.5]
Wat wordt in het functionele paradigma onder een programma verstaan?
[C15.5]
In welke twee gevallen kan de volgorde van berekening een rol spelen?
- Bij het samenstellen van deelberekeningen
- Bij het aanroepen van een abstractie met parameters
Noem twee manieren waarop in een functionele taal de volgorde van berekening kan worden voorgeschreven
- Functiecompositie
- Continuatiefuncties
Wat wordt in verband met logisch programmeren bedoeld met de omkeerbaarheid van relaties?
Een logisch programma maakt geen onderscheid tussen inputs en outputs.
[C15.8]
Welke restrictie geldt in Prolog ten aanzien van het gebruik van standaardrelaties en -operatoren?
[C15.8]
Hoeveel relaties zijn mogelijk tussen twee verzamelingen S en T?
Het cartesisch product S x T bevat #S x #T waarden. Iedere waarde kan wel of niet in een deelverzameling voorkomen. Het aantal deelverzamelingen is dus 2 ^ (#S x #T)
[C15.1]
Kunnen we in Java een methode analoog aan de Haskell-functie map schrijven?
- In Java kunnen we geen parametrisch polymorfe methoden schrijven zoals de functie map
- Methoden kunnen in Java niet als parameter aan een andere methode worden meegegeven
Hoe kunnen we in Prolog de volgorde van berekening beïnvloeden?
[C15.7]
Noem vier soorten vragen die een logisch programma kan beantwoorden
- Of R(a,b) waar is bij een gegeven a en b
- Alle y waarvoor R(a,y) waar is bij een gegeven a
- Alle x waarvoor R(x,b) waar is bij een gegeven b
- Alle x en y waarvoor R(x,y) waar is
Welke drie waarden kent Prolog?
- Getallen
- Atomen
- Structuren
Onder welke voorwaarden mogen we een Prolog-relatie aanroepen met een bekend resultaat en met onbekende parameters?
[C15.zelftoets]
Waarom heeft een relatie in Prolog een parameter meer dan een overeenkomstige functie in Haskell?
[C15.zelftoets]
Welke primitieve waarden kent Prolog?
- Numbers
- Atoms (parameterloze contructors)
Welke samengestelde waarden kent Prolog?
- Tagged structures (vergelijkbaar met tagged tuples)
Wat wordt in een logische taal verstaan onder een assertie?
[T15.1]
De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:
- Een unieke studie- en oefentool
- Nooit meer iets twee keer studeren
- Haal de cijfers waar je op hoopt
- 100% zeker alles onthouden