얼랭 커맨드 실행하려면, erl을 실행한다.
$ erl
Erlang/OTP 18 [erts-7.1] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V7.1 (abort with ^G)
1>
주석은 %로 시작한다.
1> % 주석 테스트
1> %% 주석 테스트
1> %%% 주석 테스트
문장의 종료는 마침표(.)이다.
1> 10 + 10.
20
ctrl + p 또는 윗 키는 앞 명령어, ctrl + n 또는 아래 키는 뒷 명령어이다.
숫자와 문자와의 연산은 되지 않는다.
2> 30-1-'a'.
** exception error: an error occurred when evaluating an arithmetic expression
in operator -/2
called as 29 - a
계산 기능은 잘 된다. /를 사용하면 부동형(.)으로 표현한다.
3> 1+2/2.
2.0
javascript 정도의 실수 연산을 할 수 있다.
4> 999999999999999999999999999999999999*999999999999999999999999999999999999999999999.
99999999999999999999999999999999999989999999990000000000000000000000000000000000001
그러나 엄청 큰 두 숫자를 곱하면 에러가 난다.
* 1: illegal float
16진수 값을 연산할 수 있다. 진수 계산을 하려면 '숫자진수#값'을 사용한다. 2진수 1은 '2#1'로 표현한다.
7> 16#A + 16#2.
12
cd로 디렉토리 변경할 수 있고, pwd로 현재 디렉토리를 확인할 수 있다.
11> pwd(). /usr/local/Cellar/erlang/18.1/bin
ok
13> cd("../").
/usr/local/Cellar/erlang
ok
16> cd("/mydev").
/mydev
ok
변수 설정은 할 수 없다. 상수만 설정할 수 있다. 대문자로 시작하는 상수는 사용할 수 있다.
20> A=1.
1
21> a=1.
** exception error: no match of right hand side value 1
22> Aa=1.
1
underscore로 값을 할당할 수 있다.
23> _ = 1 + 2.
3
상수로 또 다른 상수를 정의할 수 있다.
25> B=A+1.
2
상수 출력은 상수 값에 마침값을 추가한다.
25> A.
1
$를 사용하면, ASCII 값을 저장한다.
31> $1.
49
32> $2.
50
33> $0.
48
상수에 정의된 모든 값을 초기화하려면 f() 를 사용한다.
39> f().
ok
40> A=1.
1
41> A=2.
** exception error: no match of right hand side value 2
42> f().
ok
43> A=1.
1
연산자 사용하기
44> B=-A.
-1
45> C=+A.
1
46> B*C.
-1
47> B/C.
-1.0
48> bnot B.
0
49> B/A.
-1.0
50> B+A.
0
51> B-A.
-2
52> B div A.
-1
53> B rem A.
0
54> B band A.
1
동일한 값이 좌/우에 같으면, 문제 없지만, 틀린 값이면 에러가 발생한다.
=을 패턴 매칭이다!!!
60> 10 = 8 + 2.
10
61> 11 = 8 + 2.
** exception error: no match of right hand side value 10
enum 또는 글로벌 상수를 선언할 수 있다. 이를 atom이라고 부른다.
그러나 마침표가 중간에 있거나 연산자가 있으면 에러가 발생한다.
63> samuel.
samuel
64> samuel.kim.
* 1: syntax error before: '.'
64> incredible-king.
** exception error: an error occurred when evaluating an arithmetic expression
in operator -/2
called as incredible - king
65> incredible_king.
incredible_king
예약어를 atom으로 선언하면 에러가 발생한다.
66> when.
* 1: syntax error before: 'when'
논리 연산자를 사용할 수 있다. 숫자에 대한 논리 연산자는 =:=이다.
66> true and true.
true
67> true or false.
true
68> not false.
true
69> not (false and false).
true
70> 1 =:= 2.
false
71> 1 =:= 1.
true
shell 커맨드를 종료하려면 halt 함수를 실행하거나 ctrl+c를 두번 누른다(또는 ctrl+c 누르고 a를 선택한다.).
80> halt().
'erlang' 카테고리의 다른 글
[erlang] erlang shell 간단 테스트 - if, case, 함수 선언, is_list, is_number (0) | 2015.11.09 |
---|---|
[erlang] erlang shell 간단 테스트 - 튜플, 리스트 (0) | 2015.11.08 |
[erlang] 얼랭 파일 컴파일 후 실행하기 (0) | 2015.11.07 |
rebar 컴파일 주의사항 (0) | 2015.11.06 |
mac에서 erlang 설치 (0) | 2015.10.02 |