Michael Koops Ответов: 1

Как может цикл быть смоделированы в функциональных языках вроде Haskell?


как использовать цикл while в Haskell.
Пример кода был бы великолепен.

how to use while loop in Haskell.
Code example would be great.


how to use while loop in Haskell.
Code example would be great.


Что я уже пробовал:

how to use while loop in Haskell.
Code example would be great.


how to use while loop in Haskell.
Code example would be great.


how to use while loop in Haskell.
Code example would be great.

1 Ответов

Рейтинг:
0

CDP1802

Я не знаю Хаскелла, но есть одна вещь, которая все еще должна быть действительна для функционального языка: итерация (циклы) всегда может быть заменена эквивалентной рекурсией или наоборот.

Наименее запутанное определение рекурсия[^]- это функция, которая вызывает саму себя. Каждый вызов представляет собой итерацию исходного цикла. Бесконечная рекурсия не работает (обычно она заканчивается переполнением стека), поэтому должно быть какое-то условие, которое завершает рекурсию и просто возвращает.

Для рекурсии типа "while" вам придется проверить свое состояние,чтобы решить, выполнять ли вашу функцию или возвращаться. Это с-подобный псевдокод:

ReturnType RecursiveFunction(SomeParameters)
{
    if(Condition == true)
    {
        return;
    }
    else
    {
        // Do whatever your loop should have done,
        // possibly modifying the parameters that have been passed.

        // recursive call to your function
        return RecursiveFunction(ModifiedParameters);
    }
}


Возможно, эта ссылка может помочь:
Рекурсия-научите вас Хаскеллу для великого блага![^]