Rob Pike's Golang presentation excercise of day 1
This seems like a good solution except for one thing:

func power(a, b int) int {
    return a ^ b
}


The ^ operator doesn't do what you think it does. It's a bitwise xor operator. There is no power operator in Go, there's only math.Pow for float64s.

On a side note, I personally would create a type for operators:

type Op func(int, int) int


It's easier to type in function definitions and allows you to extend it with methods like String().