Edit: Se não ficou claro o que eu estava perguntando: quais são os problemas que são mitigados por não permitir declarações de funções aninhadas?
Lambdas funcionam conforme o esperado:
func main() {
inc := func(x int) int { return x+1; }
}
No entanto, a seguinte declaração dentro de uma declaração não é permitida:
func main() {
func inc(x int) int { return x+1; }
}
Por que razão as funções aninhadas não são permitidas?
func main() { func (x int) int { return x+1; }(3) }