Golang Functional Programming (and why you should NOT do it)