Capítulo 17. Funciones dinámicas

17.1. Inmersión

Quiero hablar sobre los sustantivos en plural. También sobre funciones que devuelven otras funciones, expresiones regulares avanzadas y generadores. Los generadores son nuevos en Python 2.3. Pero primero hablemos sobre cómo hacer nombres en plural[20].

Si no ha leído Capítulo 7, Expresiones regulares ahora es el momento. Este capítulo asume que comprende lo básico de las expresiones regulares, y desciende rápidamente a usos más avanzados.

El inglés es un idioma esquizofrénico que toma préstamos de otros muchos, y las reglas para hacer plurales los sustantivos singulares son variadas y complejas. Hay reglas, y luego excepciones a esas reglas, y excepciones a las excepciones.

Si se crió en un país de habla inglesa o aprendió inglés durante su educación formal, probablemente conozca las reglas básicas:

  1. Si una palabra termina en S, X o Z, añada ES. “Bass” pasa a ser “bases”, “fax” se convierte en “faxes” y “waltz” será “waltzes”.
  2. Si una palara termina en una H sonora, añada ES; si acaba en una H sorda, añada simplemente S. ¿Qué es una H sonora? Una que puede ser combinada con otras letras para hacer un sonido audible. Así que “coach” será “coaches” y “rash” pasa a ser “rashes”, porque puede oír los sonidos CH y SH cuando los pronuncia. Pero “cheetah” se convierte en “cheetahs”, porque la H es sorda.
  3. Si una palabra termina en Y que suena como I, cambie la Y por IES; si la Y se combina con una vocal y suena de otra manera, añada sólo S. Así que “vacancy” pasa a ser “vacancies”, pero “day” será “days”.
  4. Si todo lo demás falla, añada una S y espere que sea así.

(Lo sé, hay un montón de excepciones. “Man” es “men” en plural y “woman” es “women”, pero “human” es “humans”. “Mouse” es “mice” y “louse” es “lice”, pero “house” se convierte en “houses”. “Knife” será “knives” y “wife”, “wives”, pero “lowlife” en plural es “lowlifes”. Y no quiero empezar con las palabras que son su propio plural como “sheep”, “deer” y “haiku”).

En otros idiomas es completamente diferente, por supuesto.

Diseñemos un módulo que pluralice sustantivos. Empecemos sólo sustantivos ingleses y sólo estas cuatro reglas, pero pensemos que inevitablemente vamos a necesitar añadir más reglas, y puede que más adelante necesitemos añadir más idiomas.

Footnotes

[20] N. del T.: por supuesto, Mark se refiere a los plurales en inglés. Téngalo en cuenta el resto del capítulo, puesto que no voy a adaptarlo a los sustantivos en castellano para no tener que modificar los ejemplos.