/
thesaurus.go
42 lines (32 loc) · 914 Bytes
/
thesaurus.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package main
import (
"fmt"
"strings"
)
const (
QUERY = "select synonyms, antonyms from thesaurus where word = \"%s\""
)
func splitWords(words string) []string {
return strings.Split(words, ",")
}
func appendCommaSeparatedWords(words []string, commaSeparatedWords string) []string {
for _, word := range splitWords(commaSeparatedWords) {
word := strings.TrimSpace(word)
if len(word) == 0 {
continue
}
words = append(words, word)
}
return words
}
func thesaurusLookup(word string) ([]string, []string) {
synonyms := make([]string, 0)
antonyms := make([]string, 0)
query := fmt.Sprintf(QUERY, word)
rows := dbSelect(query)
for _, row := range rows {
synonyms = appendCommaSeparatedWords(synonyms, row[0])
antonyms = appendCommaSeparatedWords(antonyms, row[1])
}
return synonyms, antonyms
}