Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A port of rails' inflector to common lisp

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 tests
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.md
Octocat-spinner-32 cl-inflector.asd
Octocat-spinner-32 inflector.lisp
README.md

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

Something went wrong with that request. Please try again.