LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

А этот пример на Golang? Там тоже динамическая типизация?

type T func(int) T

func f(x int) T {
    fmt.Printf("f call with %d\n", x)
    return f
}

func g(x int) T {
    if x > 0 {
        return f
    } else {
        return f(x)
    }
}
Если да, то я не знаю как тебе объяснить, насколько ты глубоко заблуждаешься, уверяя что в статической типизации невозможно выражать рекурсивные типы, я уверен используя классы и структуры ты постоянно ими пользуешься.

Исходная версия MOPKOBKA, :

А этот пример на Golang? Там тоже динамическая типизация?

type T func(int) T

func f(x int) T {
    fmt.Printf("f call with %d\n", x)
    return f
}

func g(x int) T {
    if x > 0 {
        return f
    } else {
        return f(x)
    }
}