#!/usr/bin/env /friends/bin/goscript package main import "fmt" func main() { for out := range FizzBuzz(30) { fmt.Println(out) } } func FizzBuzz(n int) <-chan string { out := make(chan string, n) go func() { for i := 1; i <= n; i++ { s := "" if i % 3 == 0 { s += "Fizz" } if i % 5 == 0 { s += "Buzz" } if s == "" { s = fmt.Sprintf("%v", i) } out <- s } close(out) }() return out }