Учебники

Эрланг — Петли

Erlang — это функциональный язык программирования, и что нужно помнить обо всех функциональных языках программирования, так это то, что они не предлагают никаких конструкций для циклов. Вместо этого функциональное программирование зависит от концепции, называемой рекурсией.

при реализации заявления

Поскольку в Erlang нет прямого оператора while, необходимо использовать методы рекурсии, доступные в Erlang, для реализации оператора while.

Мы попытаемся следовать той же реализации цикла while, что и в других языках программирования. Ниже приводится общий поток, который будет следовать.

при реализации заявления

Давайте рассмотрим пример того, как мы можем использовать рекурсию для реализации цикла while в Erlang.

пример

Live Demo

-module(helloworld). 
-export([while/1,while/2, start/0]). 

while(L) -> while(L,0). 
while([], Acc) -> Acc;

while([_|T], Acc) ->
   io:fwrite("~w~n",[Acc]), 
   while(T,Acc+1). 
   
   start() -> 
   X = [1,2,3,4], 
   while(X).

Следующие ключевые моменты должны быть отмечены о вышеупомянутой программе —

  • Определите рекурсивную функцию, вызываемую while, которая будет имитировать реализацию нашего цикла while.

  • Введите в качестве примера список значений, определенных в переменной X, для нашей функции while.

  • Функция while принимает каждое значение списка и сохраняет промежуточное значение в переменной «Acc».

  • Затем цикл while вызывается рекурсивно для каждого значения в списке.

Определите рекурсивную функцию, вызываемую while, которая будет имитировать реализацию нашего цикла while.

Введите в качестве примера список значений, определенных в переменной X, для нашей функции while.

Функция while принимает каждое значение списка и сохраняет промежуточное значение в переменной «Acc».

Затем цикл while вызывается рекурсивно для каждого значения в списке.

Вывод приведенного выше кода будет —

Выход

0
1
2
3

для заявления

Поскольку в Erlang нет прямого выражения для оператора, необходимо использовать методы рекурсии, доступные в Erlang, для реализации оператора for .

Мы попытаемся следовать той же реализации цикла for, что и в других языках программирования. Ниже приводится общий порядок действий, которого следует придерживаться.

для заявления

Давайте рассмотрим пример того, как мы можем использовать рекурсию для реализации цикла for в Erlang.

пример

Live Demo

-module(helloworld). 
-export([for/2,start/0]). 

for(0,_) -> 
   []; 
   
   for(N,Term) when N > 0 -> 
   io:fwrite("Hello~n"), 
   [Term|for(N-1,Term)]. 
   
start() -> 
   for(5,1).

Следующие ключевые моменты должны быть отмечены о вышеупомянутой программе —

  • Мы определяем рекурсивную функцию, которая будет имитировать реализацию нашего цикла for .

  • Мы используем защитный элемент в функции «for», чтобы гарантировать, что значение N или ограничение является положительным значением.

  • Мы рекурсивно вызываем функцию for, уменьшая значение N при каждой рекурсии.

Мы определяем рекурсивную функцию, которая будет имитировать реализацию нашего цикла for .

Мы используем защитный элемент в функции «for», чтобы гарантировать, что значение N или ограничение является положительным значением.

Мы рекурсивно вызываем функцию for, уменьшая значение N при каждой рекурсии.

Вывод приведенного выше кода будет —