_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈
FrontPage › Erlang의특징과개념

Contents

[-]
1 함수형 언어
2 일반적인 특징
3 변수의 특징
4 Atom
5 Tuple
6 List
7 문자열
8 fun


1 함수형 언어 #

  • 기본 모델
    • 수학 함수에 기반
    • 함수를 값에 적용(application)
    • 매개변수 전달(parameter passing)
    • 반환 값(return value)
  • 특징
    • 변수 및 배정문이 없음
    • 자기호출(recursion)에 의한 반복
    • 루프 같은 반복문은 없음

2 일반적인 특징 #

  • 루프 제어문이 없다.
  • 함수형 언어이기 때문에 모든 식은 값을 가져야 한다.
  • 데이터형에 대한 선언이 없다. (알아서 한다.)
  • = 는 할당문이 아니다. (Lhs = Rhs의 뜻: 오른쪽을 계산한 다음 왼쪽에 있는 패턴과 매치하라는 뜻)
  • 엄청나게 큰 숫자도 쉽게 계산할 수 있다.
  • Garbage Collector가 있다.

3 변수의 특징 #

  • 변수는 대문자로 시작해야 한다.
  • 변수는 초기값이 없을 경우에만 값을 삽입(bound)할 수 있다. 값이 없는 변수는 Unbound 된 변수라고 한다.
  • 기본적으로 한 번 Bound된 변수는 다시 값을 할당할 수 없다.
  • 변수는 어떤 값에 대한 참조일 뿐이다. 그러므로 Atom, Tuple, Function과 같은 것들도 Bound 될 수 있다.

4 Atom #

  • 수치가 아닌 상이한 불변 값을 나타내는데 사용한다. (C의 열거형쯤 된다.)
  • 전역(Globle)이다.
  • 소문자로 시작해야 한다.
  • 대문자로 시작하려면 작음 따옴표(')를 써야 한다. 'a'와 a는 같다. 하지만 A와 'A'는 다르다. A는 변수로 인식하고 'A'는 Atom으로 인식한다.

5 Tuple #

  • Tuple은 C언어의 구조체쯤 된다.
  • 보통 P = {point, 4, 5} 와 같이 표현된다.
  • 역시 값이 이미 바운드 된 상태이므로 변경 불가능하다.

6 List #

  • 개수가 가변적인 데이터(erlang 데이터는 무엇이든)를 저장할 때 사용
  • 변경 가능
  • 대괄호([])로 둘러싸며, 요소들은 쉼표(,)로 구분
  • 리스트 용어
    • 헤드(head): 리스트의 첫 번째 요소
    • 꼬리(tail): 헤드를 제외한 나머지 부분
  • 대부분의 리스트 처리는 헤드를 처리하고, 그 다음 꼬리를 처리하는 식임.
  • []는 빈 리스트
  • [H|T]도 리스트, 세로막대(|)는 헤드와 꼬리를 구분함.
  • [H1|T1] = L. 과 같이 패턴매칭으로 데이터를 추출함.
  • List-at-a-time: 함수를 한 번 호출하여 리스트 전체에 대한 무언가를 수행하는 연산
  • 사이 추가 연산자(infix append operator)- L1=[1,2,3]이고, L2=[4,5,6] 일때 L1++L2와 같이 하면 [1,2,3,4,5,6]과 같이 된다.

7 문자열 #

  • 정수 리스트다.
  • 큰 따옴표(")로 둘러싼다.
  • 출력은 터미널 로케일 및 문자 코드 설정에 따른다.
  • 요즘(2014-04)은 erl +pc unicode 과 같이 입력하고 erl 쉘에 들어간다. [http]참고

8 fun #

  • 익명함수
  • fun을 함수의 매개변수로 사용할 수 있고, 함수(or fun)가 fun을 반환할 수 있다.

댓글 남기기..
이름: : 오른쪽의 새로고침을 클릭해 주세요. 새로고침
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:52

현명해지는 길이요? 그거요. 간단한 일이죠. 실수하고 또 실수하고 다시 또 실수하더라도 조금만 덜 다시 조금만 덜 다시 또 조금만 덜 실수해 나가면 되는 거죠. <파이어트 하인의 (Grooks 1) 중에서>