XEROX PLURAL 2 4 1 PLURAL 1 4 By: Martin Kay (Kay.pa@Xerox) and Jon L White PLURAL is a file containing two main user-level functions: "Plural" which returns the plural forms of singular nouns, and "Ordinal" which returns the ordinal corresponding to a given cardinal. Both functions return STRINGs. Plural takes a STRING or a LITATOM as its argument and Ordinal takes a non-negative integer. The second argument to Plural, if non-null, affects the result just in case it is 1; in that case, the first argument is *not* modified for plurality (the rationale for this will be clear form the examples below). The second argument to Ordinal, if non-null, causes the oridnal suffix ("th", "nd", etc.) to be upper rather than lower case. V‡€ภ8>๘@xpp‚@ H€  D€ D @@ H„xq`€,8ุ`ัภ,8ฑแฤO ภDรx๐เ‡X ‡ ‰€2Dจ 82 2ศ‚$D @D A A@ˆ"dŸ ‰€ Dจ   ˆ‚$D @xม Aˆ Dˆ ‰€ Dจ   ˆ‚$D @@A  Aˆ D„ ‰€ Dจ ‘D2  ˆ’$ฤ€ @@2A  IH‰"Dว q€ 8จภ8ัภ ˆaรC @@าม @‚0เ‡†D@€8€๐เ(8 ˆ (@€ ˆ"%‡(๐แล…€ ˆ"&@‚@"&@€ ๐"$‚@!„@€ €"$‚@ D@€ €"d‚@"$@€€!ค‚@!ฤ@8€@@€ภ8pเ‡8๐โภ €<8qaร€@‰€"A €‰’$@@๘ภ€ Irregular plurals can be provided for by putting the putting them on the property list of the atom whose print name is the singular form, in lower case, under the name PLURAL. Thus: ภK€p€ม@A BDฐเBx„DศB OžD€๐B DDB" BLB" €4€๐A €p‡   xp  ˆ `" " ˆ p€€"| เ€<@‰เ„€@" "@‰D€B"@!ร"@‰D8ˆแภ€D"@" D"@‰แD"‰ €ฯž"@"#ฤ<@‰B$"0CศŒx€B€"Dˆ๒"D‰€€"(‘@aH‚"DDE@€B@"D‰@"D‰$@"D! "‘DˆaG‚8`Cย@๘ใใ€8๐๒€8๑#€< แภŽ"๘เว8p#€  For the user who wants to put suffixes together himself, the function ORDINALSUFFIXSTRING will return only the "st", "nd", "rd", or "th" part that Ordinal returns. (LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC) STARTINGPAGE# 1) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))(ศ (ศ(ŠŠ8(ŠŠ8Dศศ PAGEHEADING RUNNINGHEAD(MODERN MODERNLOGOMODERN GACHA  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN /•8 BMOBJ.GETFN3GACHA ถ BMOBJ.GETFN3GACHA   BMOBJ.GETFN3GACHA ค+ฟ2zบ