얼랭 커맨드 실행하려면, 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().



Posted by '김용환'
,