Ondanks het feit dat schapen en geiten sterk op elkaar lijken en met elkaar kunnen gekruist worden, behoren ze tot verschillende geslachten binnen de subfamilie van de Caprinae1 van de familie Bovidae2. Geiten behoren tot het geslacht Capra3 en bezitten 60 chromosomen, terwijl schapen tot het geslacht Ovis4 behoren en maar 54 chromosomen hebben. Door dit verschil in chromosomen zal een paring tussen een schaap en een geit in de meeste gevallen tot een doodgeboren nageslacht leiden. Praktijkvoorbeelden suggereren echter dat een nakomeling levensvatbaar kan zijn, hoewel het zonder DNA-onderzoek niet uit te sluiten is of het een chimaera betreft.
Het jong van een vrouwtjesschaap (ooi) en een geitenbok noemt men een gaap. Het jong van een geitenvrouwtje (sik) en een mannetjesschaap (ram) noemt men een scheit. Beide combinaties leken onvruchtbaar, maar op 29 december 2012 werden in Nederland twee lammetjes geboren uit een bevruchting door een gaap. Analoog noemt men de kruising van een mannetjesleeuw (Panthera leo) met een tijgerin (Panthera tigris) een lijger. Een lijger heeft dus ouders van verschillende soorten uit hetzelfde genus.
Schrijf twee functies die helpen om namen te verzinnen voor het nageslacht na kruising van twee soorten:
Een functie splitsing waaraan een woord $$w$$ (str) moet doorgegeven worden dat enkel bestaat uit letters (zowel hoofdletters als kleine letters zijn toegelaten). De functie moet $$w$$ opsplitsen in een prefix (str) en een suffix (str), waarbij het prefix bestaat uit alle medeklinkers vooraan het woord. Als medeklinkers beschouwen we de letters die verschillend zijn van a, e, i, o en u. De functie moet een tuple teruggeven dat het prefix en het suffix van $$w$$ bevat, met behoud van hoofdletters en kleine letters.
Een functie kruising waaraan twee woorden $$w_1$$ en $$w_2$$ (str) moeten doorgegeven worden die enkel bestaan uit letters (zowel hoofdletters als kleine letters zijn toegelaten). De functie moet een tuple van twee woorden (str) teruggeven: i) het woord dat gevormd wordt door de samenstelling van het prefix van $$w_1$$ en het suffix van $$w_2$$, en ii) het woord dat gevormd wordt door het prefix van $$w_2$$ en het suffix van $$w_1$$. Hierbij moeten de woorden $$w_1$$ en $$w_2$$ opgesplist worden in een prefix en een suffix met behulp van de functie splitsing.
In onderstaande editor waar je een oplossing voor de opgave kan indienen, hebben we reeds een skelet opgemaakt voor de broncode. Bekijk zeker ook de video over test-driven development5 om te leren werken met doctests. Hierdoor zal je de laatste twee statements begrijpen in het skelet van de broncode, en de rol die daarbij gespeeld wordt door de docstrings die we in het skelet reeds gedefinieerd hebben voor de gevraagde functies.
>>> splitsing('schaap')
('sch', 'aap')
>>> splitsing('geit')
('g', 'eit')
>>> kruising('schaap', 'geit')
('scheit', 'gaap')
>>> kruising('leeuw', 'tijger')
('lijger', 'teeuw')
>>> kruising('hond', 'kat')
('hat', 'kond')
Mine OM, Kedikilwe K, Ndebele RT, Nsoso SJ (2000). Sheep-goat hybrid born under natural conditions. Small ruminant research: the journal of the International Goat Association 37(1-2) 141-145. 6
Stewart-Scott IA, Pearce PD, Dewes HF, Thompson JW (1990). A case of a sheep-goat hybrid in New Zealand. New Zealand veterinary journal 38(1), 7-9. 7
Tucker EM, Denis B, Kilgour L (1989). Blood genetic marker studies of a sheep-goat hybrid and its back-cross offspring. Animal genetics 20(2), 179-186. 8