Erlang - это функциональный язык программирования, и что нужно помнить о всех языках функционального программирования, так это то, что они не предлагают никаких конструкций для циклов. Вместо этого функциональное программирование зависит от концепции, называемой рекурсией.
WHILE
Поскольку в Erlang нет прямого предложения, нужно использовать методы рекурсии, доступные в Erlang, для выполнения реализации while. Мы попытаемся выполнить ту же реализацию цикла while, что и в других языках программирования. Ниже приводится общий поток, который будет соблюдаться.
-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 вызывается рекурсивно для каждого значения в списке.
FOR
Поскольку в Erlang нет прямого для утверждения, нужно использовать методы рекурсии, доступные в Erlang, для выполнения реализации for.Мы попытаемся выполнить ту же реализацию цикла for, что и в других языках программирования.
-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
- Мы используем охранник в функции «для», чтобы гарантировать, что значение N или предел является положительным значением
- Мы рекурсивно вызываем функцию for, уменьшая значение N при каждой рекурсии
0 комментариев