package main import "fmt" import "io" import "io/ioutil" import "log" import "os" import "strings" func wc(r io.Reader) map[string]uint { words := make(map[string]uint) if text, err := ioutil.ReadAll(r); err != nil { log.Fatalln(err) } else { for _, word := range strings.Fields(string(text)) { words[word]++ } } return words } func openFile(path *string) *os.File { f, err := os.Open(os.Args[1]) if err != nil { log.Fatalln(err) } return f } func main() { if len(os.Args) <= 1 { log.Fatalln("Missing file") } f := openFile(&os.Args[1]) fmt.Println(wc(f)) }