150 likes | 284 Views
Tegengestelden / Synoniemen. Lesgever:Hans Yperman . Inhoud. Herhaling taalwereld Onderzoeken van het probleem Implementatie. first, butfirst, last, butlast. first van een lijst geeft het eerste element uit de lijst. butfirst geeft de rest van de lijst. last geeft het laatste element
E N D
Tegengestelden / Synoniemen Lesgever:Hans Yperman
Inhoud • Herhaling taalwereld • Onderzoeken van het probleem • Implementatie
first, butfirst, last, butlast • first van een lijst geeft het eerste element uit de lijst. • butfirst geeft de rest van de lijst. • last geeft het laatste element • butlast geeft alles behalve het laatste element
Voorbeelden • Make "fruit ["appel "banaan "citroen "druif] • first :fruit • last :fruit • butfirst :fruit • butlast :fruit
Voorbeelden • first [ [Appel Peer ][Banaan Perzik] ] • [Appel Peer ] • first first [[Appel Peer ][Banaan Perzik]] • "Appel • last first [[Appel Peer ][Banaan Perzik]] • "Peer
fput • fput voegt elementen toe aan een lijst • print fput "A [B C ] • [A B C] • print fput "A [] • [A]
Print, readlist, emptyp • print toont een lijst • print [1 2 3 4 ] • readlist leest een lijst in • print readlist • emptype controleert of een lijst leeg is • if emptyp [] [print [De lijst is leeg]]
output • Geef een waarde terug uit een procedure • to voorbeeld :in output fput "X :in end voorbeeld "Hallo
Herhaling recursie • eenvoudig en recursief geval • Bij een lijst: • eenvoudig geval: de lege lijst • recursief geval: haal een woord van de lijst af, en geef de rest recursief door
Voorbeeld recursie • to voorbeeld :lijst if emptyp :lijst [stop] print first :lijst voorbeeld butfirst :lijst end
Tegenstellingen • Schrijf een programma dat • een zin inleest • zijn tegengestelde uitschrijft • Maak gebruik van: • make "tegengestelden [[ dik dun] [ domme slimme] [grote kleine] ... ] • Voorbeeld: De grote slimme man is dik • wordt:De kleine domme man is dun
Extra • zorg dat het programma niet alle tegengestelden [ oud nieuw ] niet ook als [nieuw oud] moet opslaan. • Wat gebeurt er als een tegengestele 2 keer voorkomt in de lijst met tegengestelden
Oplossing to vergelijk :woord :lijst if emptyp :lijst [output :woord ] ifelse :woord = first first :lijst [ op last first :lijst ][ op vergelijk :woord bf :lijst ] end
Oplossing to tegengestelde :regel :lijst if emptyp :regel [output []] output fput (vergelijk first :regel :lijst ) (tegengestelde (butfirst :regel) :lijst) end
Oplossing to tegenstelling make "tegengestelden [[ dik dun] [domme slimme] [grote kleine] ] make "regel readlist print [de tegengestelde van ] print :regel print [ is ] print tegengestelde :regel :tegengestelden end