markov: fixed severe bug in Shift()

This commit is contained in:
an 2019-08-24 09:06:39 +02:00
parent 327ce86ccd
commit a517f0d638
1 changed files with 6 additions and 2 deletions

View File

@ -129,8 +129,12 @@ func (p MarkovPrefix) String() string {
// Shift removes the first word from the Prefix and appends the given word. // Shift removes the first word from the Prefix and appends the given word.
func (p MarkovPrefix) Shift(word string) { func (p MarkovPrefix) Shift(word string) {
copy(p, p[1:]) if len(p) < *markovPrefixLen {
p[len(p)-1] = word p = append(p, word)
} else {
copy(p, p[1:])
p[len(p)-1] = word
}
} }
// MarkovChain contains a map ("chain") of prefixes to a list of suffixes. // MarkovChain contains a map ("chain") of prefixes to a list of suffixes.