BH: Add a TIF in which they use a list of suffixes and expressions and then do a FOR EACH ITEM…
MF: Need to revise to follow Modeling Langauge in U1
You can improve plural
to work correctly with more words. If the project is not already open, please reload it. (The suggested file name was U2-Plural
.)
list
of the words you want it to work for.plural
block should never give words to plural-h
unless those words end with h. map
to test it on the entire list
you made earlier.Abstraction: Language often has special cases. In English, the plurals ofsome nouns add s; some add es; nouns like calf and fly become calves and flies, changing their final letters before adding es. And more. For a programming task this complex, it's (generally) best to break it into parts, handle each part separately with its own procedure (its own block), and then have the "top-level" block—in this case, plural
, itself—use those specialists. That is, instead of coding every little detail directly in plural
, it is cleaner and clearer to make plural
look something like this.
Showing the structure of the method—just the overall strategy—in the "top-level" block and leaving the details to separate blocks is one part of an important computer science idea called abstraction. Abstraction keeps your code clear, readable, and more easily debugged. It will also help your code be more flexible.
plural
to use the specialist. Test (you can use map
) to make sure plural
still works for all the words it used to work for, as well as the new ones.plural-y
to handle words like
Remember, any specialist can make mistakes if it's asked to do a job that isn't its specialty.
Make sure plural
gives it only the job it knows how to handle correctly.
plural
to handle another special case. Use a special-purpose block for your special case to keep plural
from becoming cluttered.plural
is given a word with a space at the end, it leaves that space in the plural, like this: plural
so that the result is plural
works for a single space at the end of a word, try giving it