English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Erlang 루프 문

에rlang은 함수형 프로그래밍 언어로, 모든 함수형 프로그래밍 언어는 기억해야 할 것은 그들이 어떤 루프 구조도 제공하지 않는다는 것입니다. 대신, 함수형 프로그래밍은 재귀라는 개념에 의존합니다.

while 문 구현

에rlang에는 직접적인 while 문이 없기 때문에, while 문 구현을 수행하기 위해 Erlang에서 사용할 수 있는 재귀 기술을 사용해야 합니다.

다른 프로그래밍 언어와 같은 while 루프 구현을 따르려고 시도할 것입니다. 따라서 따를 일반적인 프로세스는 다음과 같습니다.

에rlang에서 재귀를 사용하여 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 루프를 호출합니다.

위 코드의 출력은 다음과 같을 것입니다:-

출력

0
1
2
3

for 문

에rlang이 직접적인 for 문을 제공하지 않기 때문에, for 문을 구현하기 위해 Erlang의 재귀 기술을 사용해야 합니다.

우리는 다른 프로그래밍 언어와 동일한 for 루프 구현을 시도할 것입니다. 다음은 따를 수 있는 일반 절차입니다.

이제 Erlang에서 재귀를 사용하여 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의 값을 매번 재귀 호출할 때 줄여서 for 함수를 재귀 호출합니다.

위 코드의 출력은 다음과 같을 것입니다:

출력

안녕하세요
안녕하세요
안녕하세요
안녕하세요
안녕하세요