De Britse schrijfster Sarah Caudwell schreef vier detectiveromans zonder daarin het geslacht van haar hoofdpersonage Hilary Tamar prijs te geven.
Net zoals Caudwell zelf, doceert detective Hilary Tamar rechten aan de universiteit van Oxford en is geestig, erudiet en doortastend. In de vier romans — Thus Was Adonis Murdered, The Shortest Way to Hades, The Sirens Sang of Murder, en The Sybil in Her Grave — speelt Tamar de rol van mentor voor vier advocaten in juridische whodunits die draaien rond de achterpoortjes van het Britse rechtssysteem. Tamar, die zowel optreedt als verhalenverteller en als detective, schrijft in de eerste persoon, communiceert vaak per brief met de andere personages, en wordt rechtstreeks aangesproken indien aanwezig.
"Zoals je ziet, Hilary," zei Selena, "is er niemand op vakantie. Behalve Julia natuurlijk. Die zou ondertussen in Venetië moeten zitten."
"Julia?" zei ik, vol verbazing. "Je hebt Julia toch niet in haar eentje naar Venetië laten gaan zeker?"
"Ben ik dan misschien", vroeg Selena, "Julia's oppas?"
"Ja" zei ik, nogal streng, omdat haar houding mij zeer onverantwoord leek.
"Anderen spreken tegen Hilary of gebruiken de naam — je weet nooit zeker of Hilary een man of een vrouw is", merkt Sally McConnell-Ginet op in het boek The Expression of Gender van Greville G. Corbett. "Caudwell is daar zo meesterlijk in dat de meeste mensen het gebrek aan verwijzingen naar het geslacht van Hilary niet eens opmerken bij het lezen van haar romans: ze vullen in hun hoofd vaak zelf hij of zij in op grond van impliciete veronderstellingen die gekleurd zijn door hun eigen achtergrond."
"Zeer weinig mensen leken te merken dat er enige vorm van twijfel was", zei Caudwell. "Meestal verwezen ze naar Hilary als op en top vrouwelijk, of op en top mannelijk. Het wordt nu expliciet vermeld in de pocketversie, en nu lezers er direct op gewezen worden, schrijven ze me soms heel boze brieven omdat ik het geslacht niet prijsgeef op het einde van het boek." Maar ze was vast besloten om het geslacht van Tamar nooit te openbaren. "Voor mij is Hilary het archetype van een professor aan de universiteit van Oxford," zei ze "en voor mij speelt het geslacht geen rol bij wat een professor van Oxford typeert."
Dit vormde echter nooit een probleem voor haar vele fans, die van haar boeken hielden omwille van haar briljante schrijfstijl en onvolprezen humor. In The New York Times Book Review prees Newgate Callendar Caudwell's "gepolijste, gestileerde proza", "een soort Engels dat we sinds de dagen van Oscar Wilde niet meer te lezen hebben gekregen". Robert Bork zei ooit: "Naar mijn mening kunnen er nooit té veel romans van Sarah Caudwell zijn." Helaas zijn er slechts vier — ze overleed in 2000.
Je opdracht bestaat erin om het geslacht te veranderen van de woorden in een gegeven zin. Hierbij definiëren we woorden als de langst mogelijke opeenvolging van letters. Hiervoor ga je als volgt te werk:
Schrijf een functie vertaal waaraan twee argumenten moeten doorgegeven worden: een woord en een dictionary die woorden afbeeldt op woorden. Indien het gegeven woord niet voorkomt in de gegeven dictionary, dan moet het gegeven woord ongewijzigd teruggegeven worden. Indien het gegeven woord wel voorkomt in de gegeven dictionary, dan moet de functie het woord waarop het door de dictionary wordt afgebeeld teruggeven. Indien het gegeven woord enkel bestaat uit hoofdletters, dan moet het woord dat wordt teruggegeven ook in hoofdletters staan. Indien het gegeven woord begint met een hoofdletter, gevolgd door kleine letters, dan moet hetzelfde ook gelden voor het woord dat wordt teruggegeven. In alle andere gevallen moet het woord dat wordt teruggegeven enkel bestaan uit kleine letters.
Schrijf een functie geslachtsverandering waaraan twee argumenten moeten doorgegeven worden: een zin en een dictionary die woorden afbeeldt op woorden. De functie moet de gegeven zin teruggeven, waarin alle woorden die voorkomen in de gegeven dictionary werden vertaald zoals gedefinieerd door de functie vertaal, op basis van de gegeven dictionairy.
Schrijf een functie geslachtsherstel waaraan twee argumenten moeten doorgegeven worden: een zin en een dictionary die woorden afbeeldt op woorden. Hierbij wordt verondersteld dat de gegeven zin werd vertaald zoals gedefinieerd door de functie geslachtsverandering, op basis van de gegeven dictionary. De functie geslachtsherstel moet deze vertaling ongedaan maken, en de oorspronkelijke zin teruggeven.
Al deze functies moeten ervan uitgaan dat alle woorden die voorkomen in de gegeven dictionary (zowel de sleutels als hun bijhorende waarden) enkel bestaan uit kleine letters. Bovendien mogen ze er ook van uitgaan dat net zoals de sleutels, ook alle waarden van de gegeven dictionary verschillend zijn. Bij het opzoeken van woorden in dictionaries mogen de functies nooit onderscheid maken tussen hoofdletters en kleine letters.
>>> vertalingen = {'hij':'zij', 'broer':'zus'}
>>> vertaal('hij', vertalingen)
'zij'
>>> vertaal('HIJ', vertalingen)
'ZIJ'
>>> vertaal('Hij', vertalingen)
'Zij'
>>> vertaal('broer', vertalingen)
'zus'
>>> vertaal('mijn', vertalingen)
'mijn'
>>> geslachtsverandering('Hij is mijn broer.', vertalingen)
'Zij is mijn zus.'
>>> geslachtsherstel('Zij is mijn zus.', vertalingen)
'Hij is mijn broer.'