Когда мне впервые задали вопрос о том может ли существовать функция вида
Как может существовать функция у которой неоткуда взять значения? Об очевидном варианте
Func<Func<T,T>,T>
без использования конструкций вида default(T)
он поверг меня в глубокий когнитивный диссонанс. Как может существовать функция у которой неоткуда взять значения? Об очевидном варианте
T Fix<T>(Func<T,T> func){
return func(Fix(func));
}
я не мог даже подумать. Разве возможно делать такие функции? Она будет вызываться бесконечно и не даст результата. В языках типа C# такая конструкция и правда вызовет зацикливание, но вполне может работать в языках вроде питона или хаскеля. Сейчас будет немного кода на Haskell, надеюсь синтаксис будет более-менее понятен всем.