주 메뉴 열기

얼랭(Erlang, 영어: IPA[ˈɜrlæŋ])은 범용 병렬 프로그래밍 언어이다. 함수형 언어가 효율적으로 산업 현장등에서 사용되는 유명한 사례이다.

얼랭(Erlang)
Erlang logo.png
패러다임다중 패러다임 함수형,병행성
설계자조 암스트롱 (Joe Armstrong)
로버트 버딩 (Robert Virding)
마이크 윌리암스 (Mike Williams)
발표일1986년
최근 버전18.2.1
최근 버전 출시일2015년 12월 18일 (3년 전)(2015-12-18)
라이선스아파치 라이선스 2.0
웹사이트www.erlang.org
영향을 받은 언어
프롤로그, 스몰토크, PLEX
영향을 준 언어
F#, 클로저, Rust, 스칼라, Opa, Reia, Elixir, 다트, Akka
LYME is Erlang-based and competing with LAMP

원래는 에릭슨(Ericsson)사에서 스위칭 소프트웨어에서 사용하기 위해 개발했지만, 1998년오픈 소스로 공개되었다.

흔히 Erlang이라는 이름이 Ericsson Language에서 따온 것이라고 생각하지만, 실제로는 통신이론을 연구한 덴마크수학자 Agner Krarup Erlang의 이름에서 따온 것이다.

함수형 언어편집

다음은 계승을 구하는 코드이다.

 -module(fact).
 -export([fac/1]).

 fac(0) -> 1;
 fac(N) where N > 0 -> N * fac(N-1).

다음은 퀵소트 알고리즘을 구현한 것이다.

 %% quicksort(List)
 %% Sort a list of items
 -module(quicksort).
 -export([qsort/1]).

 qsort([]) -> [];
 qsort([Pivot|Rest]) ->
     qsort([ X || X <- Rest, X < Pivot]) ++ [Pivot] ++ qsort([ Y || Y <- Rest, Y >= Pivot]).

qsort 함수는 더이상 정렬할 필요가 없을 때까지 자신을 재귀적으로 호출한다.

 [ X || X <- Rest, X < Pivot]

이 부분은 "Rest원소이고, Pivot보다 작은 모든 X를 선택하라"는 의미이다.

외부 링크편집