Изменить: если было неясно, о чем я спрашивал: какие проблемы можно смягчить, запретив декларации вложенных функций?
Лямбды работают должным образом:
func main() {
inc := func(x int) int { return x+1; }
}
Однако следующее объявление внутри объявления не допускается:
func main() {
func inc(x int) int { return x+1; }
}
По какой причине нельзя использовать вложенные функции?
func main() { func (x int) int { return x+1; }(3) }