Documentation

Overview

Package markov handles markov chain generation.

This Markov chain code is taken from the "Generating arbitrary text" codewalk: http://golang.org/doc/codewalk/markov/

Minor modifications have been made to make it easier to integrate with a webserver and to save/load state

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Chain

type Chain struct {
	Chain map[string][]string

	// contains filtered or unexported fields

}

Chain contains a map ("chain") of prefixes to a list of suffixes. A prefix is a string of prefixLen words joined with spaces. A suffix is a single word. A prefix can have multiple suffixes.

func NewChain

func NewChain(prefixLen int) *Chain

NewChain returns a new Chain with prefixes of prefixLen words.

func (*Chain) Generate

func (c *Chain) Generate(n int) string

Generate returns a string of at most n words generated from Chain.

func (*Chain) Load

func (c *Chain) Load(fileName string) error

Load the chain from a file

func (*Chain) Save

func (c *Chain) Save(fileName string) error

Save the chain to a file

func (*Chain) Write

func (c *Chain) Write(in string) (int, error)

Write parses the bytes into prefixes and suffixes that are stored in Chain.

type Prefix

type Prefix []string

Prefix is a Markov chain prefix of one or more words.

func (Prefix) Shift

func (p Prefix) Shift(word string)

Shift removes the first word from the Prefix and appends the given word.

func (Prefix) String

func (p Prefix) String() string

String returns the Prefix as a string (for use as a map key).

Source Files