Skip to content

Instantly share code, notes, and snippets.

@jonbodner
Last active August 29, 2015 14:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jonbodner/a2d103039f024432f627 to your computer and use it in GitHub Desktop.
Save jonbodner/a2d103039f024432f627 to your computer and use it in GitHub Desktop.
FizzBuzz for Go with no conditionals.
package main
import "fmt"
type fber func(int)string
func fizzer(i int) string {
return "fizz"
}
func buzzer(i int) string {
return "buzz"
}
func fizzbuzzer(i int) string {
return fizzer(i)+buzzer(i)
}
func num(i int) string {
return fmt.Sprintf("%d",i)
}
func ranger(i int) []struct{} {
return make([]struct{},i)
}
func fizzBuzz() {
m := []fber{
num,
num,
fizzer,
num,
buzzer,
fizzer,
num,
num,
fizzer,
buzzer,
num,
fizzer,
num,
num,
fizzbuzzer,
}
for i, _ := range(ranger(100)) {
v := m[(i)%15]
fmt.Println(v(i+1))
}
}
func main() {
fizzBuzz()
}
@jonbodner
Copy link
Author

FizzBuzz implemented with no conditionals (outside of the for loop bound).

@jonbodner
Copy link
Author

Updated to remove the for condition and change it to a for/range loop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment