Puedes mejorar plural
para que funcione correctamente con más palabras. Si el proyecto aún no está abierto, vuelve a cargarlo. (El nombre de archivo sugerido era U2-Plural
.)
lista
de las palabras con las que deseas que funcione.plural
nunca debe dar palabras a plural-d
a menos que esas palabras terminen con "d". mapear
para probarlo en toda la lista que hiciste anteriormente.
plural
o plural-h
:Abstracción: el lenguaje a menudo tiene casos especiales. En español, los plurales de algunos sustantivos agregan "s"; algunos agregan "es"; sustantivos como "pez" y "disfraz" se convierten en "peces" y "disfraces", cambiando sus letras finales antes de agregar "es". Y más. Para una tarea de programación tan compleja, es (generalmente) mejor dividirla en partes, manejar cada parte por separado con su propio procedimiento (su propio bloque) y luego tener el bloque de "nivel superior", en este caso, plural
, en sí mismo: usa esos especialistas. Es decir, en lugar de codificar cada pequeño detalle directamente en plural
, es más limpio y claro hacer que plural
se vea así.
Mostrar la estructura del método, solo la estrategia general, en el bloque de "nivel superior" y dejar los detalles en bloques separados es una parte de una idea informática importante llamada abstracción. La abstracción mantiene su código claro, legible y más fácil de depurar. También ayudará a que tu código sea más flexible.
plural
para usar el especialista. Prueba (puedes usar mapear
) para asegurarte que plural
todavía funciona para todas las palabras para las que solía funcionar, así como para las nuevas.plural-y
para manejar palabras como plural
dé a plural-l
solo palabras que sepa manejar correctamente.
plural
para manejar correctamente una palabra de entrada que tiene un espacio al final.
En este momento, si a plural
se le da una palabra con un espacio al final, deja ese espacio en plural:
Averigua cómo manejar este caso especial y edita plural
para que el resultado sea
Ya tienes un bloque que se especializa en hacer plurales de palabras que no tienen un espacio al final. Úsalo.
¡Sorpresa! Una vez que plural
funcione para un solo espacio al final de una palabra, intenta darle. ¡Eso también funciona! ¿Pero por qué?
plurales
todavía se siente desordenado, a pesar de que los detalles sobre cómo manejar cada posible última letra están resumidos en bloques especializados? Una forma de mejorar esta situación es usar otro tipo de abstracción llamada programación dirigida a datos.
lista
, luego haz clic en el bloque con el botón derecho y elige "encapsular". Como muestra el ejemplo "x", no tiene que ser un bloque llamado plural-
algo. Solo tiene que tener una ranura de entrada vacía donde desea que vaya la palabra.plural
, puedes reemplazar la mayoría de los bloques si
conBuscar primero
es una función de orden superior que funciona de manera similar a mantener
, pero reporta solo del primer elemento que se encuentra. Es equivalente a elemento (1) de (mantener)
.
El bloque llamar
en la paleta no incluye el "con entradas
" en la imagen; cuando haces clic en su flecha derecha, esas palabras aparecerán junto a una ranura de entrada. El primer espacio de entrada del bloque llamar
es el anillo gris vacío, lo que significa que llamar
necesita un bloque en ese espacio de entrada. Cuando arrastras el elemento 2 del par
a esa ranura, el anillo permanece a su alrededor. Por lo general, eso es lo que queremos cuando usamos llamar
, pero no esta vez. Haz clic con el botón derecho en el bloque elemento de
y selecciona "desencapsular" en el menú.
llamar
para ver qué más puedes hacer con él. ¿Qué sucede si no desmarcas el bloque elemento
? ¿Qué sucede si omites el "con entradas
" y la segunda entrada?plural
para que compare todas las subcadenas finales de la palabra con la lista de especialistas. Es decir, si la palabra es "ditch" (zanja), buscará en la lista de especialistas "ditch", luego "itch", luego "tch", "ch" y finalmente, si no encuentra nada más, "h ." pondríaspalabra
que solo reporta su entrada; es necesaria porque no puede escribir letras directamente en un anillo). Ahora tienes un bloque plural
realmente despejado. E incluso funcionará para un idioma que no sea inglés, si haces una lista especializada diferente.
si
. Tu bloque plural
ahora puede ser solo de una línea: reportar (llamar (elemento 2 de (la subcadena final más larga...
.