SMS-taal is een term voor de afkortingen en slang die gebruikt worden bij het versturen van tekstberichten met mobiele telefoons. Toen het versturen van tekstberichten zijn opmars maakte in de wereld van de mobiele telefonie, werd het gebruik van afkortingen in de hand gewerkt doordat i) het moeilijk was om tekstberichten in te voeren omdat er verschillende toetsaanslagen nodig waren op een klein toetsenbord om een letter in te voeren, ii) tekstberichten vaak beperkt waren tot een maximaal aantal karakters, en iii) operatoren een kost per karakter aanrekenden.
Eens SMS-taal ingeburgerd was, begon ze een eigen leven te leiden en werd ze steeds vaker gebruikt buiten haar oorspronkelijke context. Op haar hoogtepunt vormde ze het thema van verhitte discussies over mogelijk schadelijke gevolgen voor de geletterdheid. Door de opkomst van alfanumerieke toetsenborden op smartphones zijn zowel het gebruik van SMS-taal als de controverse die er rond ontstaan is op hun retour.
Sommige mensen korten tekstberichten af door dubbele letters te vervangen door enkele letters en door enkel de klinkers over te houden aan het begin van een woord. Merk op dat de volgorde waarin deze twee bewerkingen uitgevoerd worden belangrijk is: eerst dubbels verwijderen en dan pas klinkers verwijderen. We vragen je om deze bewerkingen te implementeren, zodat ze kunnen toegepast worden om tekstberichten af te korten. Hiervoor schrijf je de volgende vier functies, waaraan telkens een string moet doorgegeven worden:
Een functie verwijderDubbels die de string moet teruggeven die bekomen wordt door alle opeenvolgende herhalingen van hetzelfde karakter te reduceren tot het eerste voorkomen van dat karakter. Bij het vergelijken van karakters mag geen onderscheid gemaakt worden tussen kleine letters en hoofdletters.
Een functie verwijderKlinkers die de string moet teruggeven die bekomen wordt door alle klinkers te verwijderen. Het eerste karakter van de string blijft echter steeds behouden, ook als dat een klinker zou zijn. Als klinkers beschouwen we de letters a, e, i, o en u, zowel in kleine letters als in hoofdletters.
Een functie tkstWoord die de string moet teruggeven die bekomen wordt door achtereenvolgens de functies verwijderDubbels en verwijderKlinkers toe te passen op de gegeven string.
Een functie tkstZin die de string moet teruggeven die bekomen wordt door de functie tkstWoord toe te passen op elk woord in de gegeven string. Woorden worden daarbij gedefinieerd als de langst mogelijke ononderbroken opeenvolging van letters. Alle karakters die geen deel uitmaken van woorden in de gegeven zin blijven gewoon staan.
>>> verwijderDubbels('bookkeeper')
'bokeper'
>>> verwijderDubbels('Aardvark')
'Ardvark'
>>> verwijderDubbels('eELGRASS')
'eLGRAS'
>>> verwijderKlinkers('bookkeeper')
'bkkpr'
>>> verwijderKlinkers('Aardvark')
'Ardvrk'
>>> verwijderKlinkers('eELGRASS')
'eLGRSS'
>>> tkstWoord('Some')
'Sm'
>>> tkstWoord('people')
'ppl'
>>> tkstWoord('compress')
'cmprs'
>>> tkstWoord('text')
'txt'
>>> tkstWoord('messages')
'msgs'
>>> tkstZin('And now for something completely different!')
'And nw fr smthng cmpltly dfrnt!'
>>> tkstZin('Some people compress text messages by replacing doubled letters with single letters and by retaining only those vowels that begin a word.')
'Sm ppl cmprs txt msgs by rplcng dbld ltrs wth sngl ltrs and by rtnng only ths vwls tht bgn a wrd.'