2012-02-29 11 views
7

Es decir, para cualquier cadena string, ¿tiene lo siguiente?¿Es la cadena # pluralize idempotent?

string.pluralize == string.pluralize.pluralize 
+2

¿Qué pasó cuando lo intentó? –

+1

@Don Roby: ¿Quieres decir, al buscar todas las cadenas posibles? –

+0

Me refiero a un conjunto razonable, como en la respuesta de Ryan Bigg. –

Respuesta

4

No puedo pensar en un caso en el que no sería así.

Acabo de probar las siguientes palabras y no cambia después de una segunda pluralización. Sin embargo, algunos de ellos hacen "romper" de maneras interesantes debido a dos razones: 1) Las reglas de pluralización de Rails son bastante tontas y 2) Inglés es difícil.

  • análisis -> análisis -> Análisis
  • los medios de comunicación -> medios de comunicación -> medios
  • Noticias -> Noticias -> noticias
  • cactii -> cactiis -> cactiis
  • criterio -> criterios -> criterios
  • pie -> Borras -> Se alza
  • pan -> panes -> panes
  • persona -> personas -> personas
+0

¿Cuál es la cadena de "persona"? 'persona -> gente -> gente'? –

+0

Actualizado con cadenas. –

+1

Hm, eso no me parece consistente. El plural de 'personas' es' gente', no 'gente'. Tal vez en realidad lo obligan a tener esta propiedad. –

6

pluralizar NO es idempotente. Puedo demostrarlo con el ejemplo (cortesía de una publicación personal en Facebook que afecta a algunos geeks del lenguaje).

"taxi".pluralize 
=> "taxis" 
"taxis".pluralize 
=> "taxes" 
"taxi".pluralize.pluralize 
=> "taxes" 

Así "taxi" (lo que conduce alrededor) a "taxis" (un arreglo u orden) a "impuestos" (la pluralización adecuado de "taxis"). Estoy seguro de que hay otros ejemplos, pero ciertamente son difíciles de conseguir.

No busco puntaje o aceptación en esta respuesta, pero realmente no podría encajar muy bien en los comentarios en la publicación de Ryan.

+1

¡Malditos sean, nombres griegos! – hoffm

+1

A partir de Rails 5 (¿y quizás antes?), Este contraejemplo ya no funciona. '" taxi ".pluralize' =>' "taxis" 'y ' "taxi" .pluralize.pluralize' => '" taxis "' – hoffm

+0

¿Qué sucede si quiero pluralizar taxis? Sin embargo, probablemente sea la decisión correcta. –

Cuestiones relacionadas