Edycja: Jeśli nie było jasne, o co pytałem: jakie problemy można złagodzić, nie zezwalając na zagnieżdżone deklaracje funkcji?
Lambdy działają zgodnie z oczekiwaniami:
func main() {
inc := func(x int) int { return x+1; }
}
Jednak następująca deklaracja w deklaracji nie jest dozwolona:
func main() {
func inc(x int) int { return x+1; }
}
Z jakiego powodu funkcje zagnieżdżone są niedozwolone?
func main() { func (x int) int { return x+1; }(3) }