English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
에rlang은 함수형 프로그래밍 언어로, 모든 함수형 프로그래밍 언어는 기억해야 할 것은 그들이 어떤 루프 구조도 제공하지 않는다는 것입니다. 대신, 함수형 프로그래밍은 재귀라는 개념에 의존합니다.
에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
에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 함수를 재귀 호출합니다.
위 코드의 출력은 다음과 같을 것입니다:
안녕하세요 안녕하세요 안녕하세요 안녕하세요 안녕하세요