단순 출력은 io:format 함수를 사용한다. ~n은 한줄을 의미한다. 만약 특정 상수를 출력하고 싶다면 ~w를 추가한다.
1> io:format("hello world~n", []).
hello world
ok
2> io:format("오 한글 되나~n", []).
오 한글 되나
ok
3>A=1.1.
4> io:format("~w~n", [A]).
1.1
ok
튜플을 ordered immutable list 정도의 타입이다. { }으로 표현한다.
1> POINT = {50, 30}
1> .
{50,30}
2> {X, Y} = POINT.
{50,30}
3> X.
50
4> Y.
30
튜플 내부의 타입은 튜플과 아무 상관없이 잘 사용할 수 있다.
5> MEMBER = {'samuel', 15, 'sales'}.
{samuel,15,sales}
6> MEMBER.
{samuel,15,sales}
튜플끼리 비교가 가능하다.
9> {50, 30} == {30, 50}.
false
10> {50, 30} == {50, 30}.
true
11> {50, 30} =:= {30, 50}.
false
12> {50, 30} =:= {50, 30}.
true
리스트는 아무 것이나 넣을 수 있으며, 리스트끼리 비교할 수 있다. [ ]로 표현한다.
13> [ 10, 20, 30 , 'abc', 1.1, atom].
[10,20,30,abc,1.1,atom]
14> [ 10, 20, 30 , 'abc', 1.1, atom] == [ 10, 20, 30 , 'abc', 1.1, atom].
true
15> [ 10, 20, 30 , 'abc', 1.1, atom] == [ 10, 20, 30 , 'abc', 1.1, atom1].
false
문자가 없으면, ASCII 묶음이 된다.
21> [48, 49, 50, 51, 52, 53, 54, 55, 56, 57].
"0123456789"
리스트간의 연산을 할 수 있다. 리스트는 리스트와의 연산을 할 수 있으며, 연산자는 정해져 있다. ++, --를 사용한 예제이다.
22> [1,2,3] + 4.
** exception error: an error occurred when evaluating an arithmetic expression
in operator +/2
called as [1,2,3] + 4
23> [1,2,3] + [4].
** exception error: an error occurred when evaluating an arithmetic expression
in operator +/2
called as [1,2,3] + [4]
24> [1,2,3] ++ [4].
[1,2,3,4]
25> [1,2,3] -- [3].
[1,2]
아주 특이한 것은 ++, -- 리스트 연산의 순서는 오른쪽에서 왼쪽이다. 아래 예를 들면, [3,1] -- [3]의 결과를 먼저 진행한다. [1]만 남는다. [1,2,3] -- [1] 연산의 결과를 출력한다.
27> [1,2,3] -- [3, 1] -- [3].
[2,3]
리스트를 concatenation을 할 수 있다. 파이프(|)을 이용하면 하나로 merge한다. 만약 쉼표(,)를 사용하면 리스트 안에 리스트를 생성한다.
29> List = [1,2,3].
[1,2,3]
30> [0,List].
[0,[1,2,3]]
31> [0|List].
[0,1,2,3]
얼랭만의 특징인데, head와 tail 명령어다. head 명령어는 hd로 쓰이며, 맨 앞 하나만 가진다. tail 명령은 head 1개를 제외한 나머지이다.
33> hd([1,2,3]).
1
34> tl([1,2,3]).
[2,3]
'erlang' 카테고리의 다른 글
[erlang] erlang shell 간단 테스트 - if, case, 함수 선언, is_list, is_number (0) | 2015.11.09 |
---|---|
[erlang] 얼랭 파일 컴파일 후 실행하기 (0) | 2015.11.07 |
[erlang] erlang shell 간단 테스트 - 연산자, 할당, 애톰 (0) | 2015.11.06 |
rebar 컴파일 주의사항 (0) | 2015.11.06 |
mac에서 erlang 설치 (0) | 2015.10.02 |