darcs-2.18.2: a distributed, interactive, smart revision control system
Copyright2008 Eric Kow
LicenseGPL
Maintainerdarcs-devel@darcs.net
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Darcs.Util.English

Description

This modules provides rudimentary natural language generation (NLG) utilities. That is, generating natural language from a machine representation. Initially, only English is supported at all. Representations are implemented for:

  • countable nouns (plurality); and
  • lists of clauses (foo, bar and/or baz).
Synopsis

Documentation

englishNum :: Countable n => Int -> n -> ShowS #

englishNum 0 (Noun "watch") "" == "watches"
englishNum 1 (Noun "watch") "" == "watch"
englishNum 2 (Noun "watch") "" == "watches"

class Countable a where #

Things that have a plural and singular spelling

Methods

plural :: a -> ShowS #

singular :: a -> ShowS #

Instances

Instances details
Countable Noun # 
Instance details

Defined in Darcs.Util.English

Methods

plural :: Noun -> ShowS #

singular :: Noun -> ShowS #

Countable Pronoun # 
Instance details

Defined in Darcs.Util.English

Countable This # 
Instance details

Defined in Darcs.Util.English

Methods

plural :: This -> ShowS #

singular :: This -> ShowS #

newtype Noun #

This only distinguishes between nouns with a final -ch, and nouns which do not. More irregular nouns will just need to have their own type

plural (Noun "batch") "" == "batches"
plural (Noun "bat")   "" == "bats"
plural (Noun "mouse") "" == "mouses" -- :-(

Constructors

Noun String 

Instances

Instances details
Countable Noun # 
Instance details

Defined in Darcs.Util.English

Methods

plural :: Noun -> ShowS #

singular :: Noun -> ShowS #

data Pronoun #

Constructors

It 

Instances

Instances details
Countable Pronoun # 
Instance details

Defined in Darcs.Util.English

data This #

singular This (Noun "batch") "" == "this batch"
plural   This (Noun "batch") "" == "these batches"

Constructors

This Noun 

Instances

Instances details
Countable This # 
Instance details

Defined in Darcs.Util.English

Methods

plural :: This -> ShowS #

singular :: This -> ShowS #

andClauses :: [String] -> String #

Given a list of things, combine them thusly:

orClauses ["foo", "bar", "baz"] == "foo, bar or baz"

orClauses :: [String] -> String #

Given a list of things, combine them thusly:

orClauses ["foo", "bar", "baz"] == "foo, bar or baz"

capitalize :: String -> String #

Capitalize the first letter of a word