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
Comments