Common Lisp Package: CL-INFLECTOR

README:

CL-Inflector

A common lisp library to easily pluralize and singularize English words.

This is a port of the ruby ActiveSupport Inflector module

Installation Hopefully eventually: > (ql:quickload 'cl-inflector)

Usage Example Usage:

> (use-package :cl-inflector) > (let ((dollars 1.7)  
        (users 34)  
        (purchases 1))  
       (format nil "The site has ~D ~A, with a total of ~D ~A and $~D ~A"   
               users (pluralize users "user")  
               purchases (pluralize purchases "purchase")  
               dollars (pluralize dollars "dollar")))  
"The site has 34 users, with a total of 1 purchase and $1.7 dollars" 

Basic Usage, plural-of and singular-of:

> (plural-of "octopus")  
"octopi" > (plural-of "datum")  
"data" > (singular-of "children")  
"child" > (singular-of "cats")  
"cat" > (singular-of "data")  
"datum" 

Basic Usage, pluralize:

> (pluralize 2 "octopus")  
"octopi" > (pluralize 1 "octopus")  
"octopus" 

You can pass in the default plural to be used. If not, the inflector is used to determine the plural.

> (pluralize 2 "tooth" "teeth")  
"teeth" > (pluralize 2 "tooth")  
"tooths" 

Use irregular to add an irregular:

> (singular-of "feet")  
"feet" > (irregular "foot" "feet") > (singular-of "feet")  
"foot" > (plural-of "foot")  
"feet" 

Use uncountable to add an uncountable:

> (plural-of "advice")  
"advices" > (singular-of "advice")  
"advice" > (singular-of "advices")  
"advice" > (uncountable "advice") > (plural-of "advice")  
"advice" 

License

Released under the MIT license, please see LICENSE for more details

Thanks

  • This was originally a support package for the Vana web framework
  • Xach - For quicklisp, really made getting back into CL much easier.
  • Siebel - For PCL, which has been a great reference.

Authors

FUNCTION

Public

IRREGULAR (SINGULAR PLURAL)

Adds a irregular single-plural set to the irregular list

PLURAL-OF (WORD)

Returns the plural of a word if it's singular, or itself if already plural

SINGULAR-OF (WORD)

Returns the singular of a word if it's singular, or itself if already singular

UNCOUNTABLE (WORD)

Notifies the inflector that a word is uncountable

Undocumented

IRREGULAR? (WORD)

PLURALIZE (COUNT WORD &OPTIONAL PLURAL)

UNCOUNTABLE? (WORD)

Private

PLURAL (RULE REPLACEMENT)

Adds a plural rule, where RULE can be either a string or a regex, and REPLACEMENT can contain capture references defined in RULE

SINGULAR (RULE REPLACEMENT)

Adds a singular rule, where RULE can be either a string or a regex, and REPLACEMENT can contain capture references defined in RULE

Undocumented

GET-IRREGULAR-PLURAL (SINGULAR)

GET-IRREGULAR-SINGULAR (PLURAL)

INFLECTOR-HELPER (WORD REGEXES)

IRREGULAR-PLURAL? (WORD)

IRREGULAR-SINGULAR? (WORD)

VARIABLE

Private

Undocumented

*IRREGULARS*

*PLURALS*

*SINGULARS*

*UNCOUNTABLES*