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

 

위 코드는 얼랭(Erlang)으로 작성한 퀵소트이다. 2~5번 줄이 사실상 한 줄이니깐, 실제로는 두 줄짜리 코드이다. 간단히 설명을 하자면, [H|T]는 List를 첫번째 항목과 나머지로 나누는데, 리스트의 첫번째 항목을 Pivot으로, 나머지를 T에 대입한다. 두번째 리스트가 호출당하면, List comprehension을 사용하여 리스트에서 Pivot보다 작은 값과, 큰 값으로 나눠서, 재귀적으로 qsort()를 호출하고, 샤샤샥~ 파바바박~ 해서, 정렬된 왼쪽의 리스트와 Pivot과 정렬된 오른쪽의 리스트를 합쳐서 리턴한다. 오.. Sexy하지 아니한가?! 아님, 말고.. ;-p

자, 서론은 여기까지 하고, 온라인 학습 생태계의 프로그래밍 언어 스터디에서 얼랭 스터디를 모집중이다. 이번 7월 20일이 첫 모임이다.

왜 얼랭을 배워야 하나? 김창준님의 글을 인용/편집하면,

얼랭은 분산/병렬/동시성 프로그래밍을 적극적으로 지원하는 언어로(Concurrency Oriented Programming이라고도 합니다), 함수형(혹은 함수형 기반) 언어이면서 거의 유일하게 상업적으로 성공을 한 언어입니다. 에릭슨에서 만든 얼랭 2백만 라인으로 된 프로그램은 신뢰도(reliability)가 99.9999999%입니다. 9가 9개라서 nine nines라고 부릅니다. 업계에서는 9가 5개만 되어도 훌륭하다고 합니다(1년에 5.2분 동안만 다운). 9 일곱개는 거의 도달하기 어렵다고 알려져 있습니다. 그런데 9가 9개라니요. 1년에 다운되는 시간이 도합 3초 정도입니다.

코드가 2백만 라인인데, 1년에 다운타임이 3초라니.. 굉장하지 않은가? 이는 언어 자체에서 신뢰성을 보장해주는 여러가지 장치들이 있기 때문이다. (사실, 나도 60p 밖에 안 읽어서 잘.. -_-). 이 밖에도, 얼랭을 배워야 하는 여러가지 이유들이 있다. 얼랭에 관심이 땡기시는 분들은, 요 말랑말랑한 떡밥을 앙증맞게 물어주시고, 스리슬쩍 낚여주시길. (웃음)

스터디 모집은 이쪽으로 => http://langstudy.metaschool.org/4630

-- Jong10

p.s. 책을 보고 있는데, 61p의 두 줄짜리 예제가 이해가 안가서 좌절중.. -_-;;


« Previous : 1 : ... 174 : 175 : 176 : 177 : 178 : 179 : 180 : 181 : 182 : ... 279 : Next »