아름다운 얼랭 코드 [닫기]


15

내가 가지고 노는 장난감 프로젝트보다 Erlang에 대해 더 많이 배우려고합니다. 이를 위해 프로그래밍 ErlangArmstrong on Software의 일부 아카이브를 읽습니다 .

또한 Erlang으로 빌드 할 수있는 것들을 보여주는 몇 가지 예제 (바람직하게는 프로덕션) 코드를 읽고 싶습니다. Yaws 외에도 (나는 가정한다) 언어를 더 잘 이해하고 다양한 언어 구성에 대한 관용적 사용을 볼 수있는 아름다운 Erlang 코드의 공개 된 예가 있습니까?

저는 특별히 "작업을 완료"하지만 의심스러운 관행이나 "여기서는 Erlang에서 작성하는 방법"에 나오는 예제를 사용하는 코드를 찾고 있지 않습니다factorial .

같은 맥락에서,이 언어를 배우기위한 좋은 문헌을 언급 할 수있는 사람이 있습니까? 선호도를 위해, 당신이 그것을 배우기 위해 사용했던 것이지만, 그것에 대한 커뮤니티 표준 서적이 있다면 그것들도 함께 넣으십시오.


Erlang은 Ericcson에 의해 만들어져 전화 트래픽을위한 대규모 병렬 스위치를 설계하고 구축합니다. Ericsson은 분산 된 내결함성 소프트 실시간 논스톱 애플리케이션을 지원하도록 설계되었습니다. 그것이 탁월한 문제 영역입니다. 다른 모든 문제 도메인의 경우 마일리지가 다를 수 있습니다.
Robert Harvey

답변:



-4

태그 기능 프로그래밍을 추가 했으므로 Haskell에서 Erlang 컴파일러 또는 인터프리터를 작성하는 것은 어떻습니까? 얼랭은 더 이상 최신 기술이 아닙니다. 다른 언어 (LISP, Prolog)와 같이 하루나 이틀 안에 Erlang을 배우고 잊어 버리는 것이 좋습니다. 그들은 명령형 OOP 언어를 배우기위한 단계 일뿐입니다.

컴파일러 구현보다 작은 작업은 Project Euler를 참조하십시오 .

[편집] 댓글에 답하려면 :

기술적 인 관점에서 볼 때, Erlang은 멀티 코어 프로세서가 없었던 옛날에 좋았습니다. 그러나 이제는 – 기존의 컴파일러 / 인터프리터를 받았으므로 이제는 더 이상 확장 할 수 없습니다. Haskell로 작성된 통역사는 확장되고 Haskell로 컴파일되어 더 빨라지지만 즉시 코드 대체 기능을 제거합니다.

프로그래머 관점에서 : Haskell은 모든 적용 가능한 작업에 대한 최선의 선택은 아니지만 atm, 아마도 고급 언어는 매우 실험적이며 적용 할 수없는 작업은 일반적으로 임베디드 시스템 (마이크로 컨트롤러 및 GPU)과 관련이 있습니다. C와 어셈블러가 여전히 최고의 선택입니다.

다른 언어보다 Erlang으로 더 잘 할 수있는 것은 무엇입니까?


4
나는 그것이 최신 기술이기 때문에 그것을 배우고 있다고 주장하지 않았다. 나는 그것이 흥미로워 보인다고 생각하고, 다른 언어로는 쉽게 할 수없는 것들을 만들 수 있습니다. 귀하의 답변이 "해당 가능한 모든 작업에 더 나은 선택"이라면, 왜 (어렴풋하게 주장하는 대신) 구체적으로 설명하고 Erlang 대신 Haskell에 대한 초기 질문에 대답하는 것은 어떻습니까?
Inaimathi

1
나는이 대답이 그렇게 나쁘다 는 것을 모른다 . 원래 질문 주위에 치마가 있지만. comanad가 말하는 의미에서 사랑스러운 Haskell을 보려면 en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours를 살펴보십시오. haskell, parsec 구문 분석 라이브러리 및 체계 구문 분석기를 작성하여 체계를 가르치는 자습서 . 파서 콤비 네이터는 기능적인 언어로 연주하기에 가장 아름다운 것들 중 하나라고 생각합니다. 그것들도 약간 실용적입니다. 파서를 작성하는 방법을 알고 나면 특정 문제를 해결하기 위해 자신의 언어를 디자인 할 수 있습니다.
CodexArcanum

1
"다른 언어보다 Erlang으로 더 잘 할 수있는 것은 무엇입니까?" 모르겠다. 그래서 내가 배우려고하는 이유입니다. 내 직감은 주요 구조가 프로세스 인 언어 (CL과 같은 폐쇄, 체계와 같은 람다 또는 파이썬과 같은 사전과 반대되는 언어)가 흥미로운 것을 제공 할 것이라고 말합니다. Haskell도 기능적이며 유사한 패턴 일치 구문을 가지고 있지만 동시성에 대한 끊임없는 초점은 없습니다. 사실, Haskell의 주요 구조는 유형 인 것 같습니다. 그래서 그것들은 매우 다른 동물이라고 생각합니다.
Inaimathi

2
@CodexArcanum-AFAIK, Erlang 및 OTP는 Mozilla Public License의 파생물로 제공되며 데비안 저장소에서 무료로 제공됩니다. "시스템이 독점적"이라는 것은 무엇을 의미합니까?
Inaimathi

1
@comonad- "해스켈은 적용 가능한 모든 작업에 더 나은 선택입니다"라는 의미는 "Erlang과 함께 완벽하게 완료 할 수있는 모든 작업에 대해 Haskell이 더 잘 수행 할 수 있음"이었습니다. 모든 프로그래밍 작업을 단일 언어로 수행 할 수 있거나 모든 프로젝트에 하나의 언어 만 사용하려고한다는 의미는 아닙니다. "하스켈을 사용할 때 왜 Erlang을 사용해야합니까?" 나는 당신이 그 주장을 명확하게하고 지원하기를 원했습니다.
Inaimathi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.