[erlang] erlang shell 간단 테스트 - if, case, 함수 선언, is_list, is_number
erlang 쉘에서 할 수 있는 테스트를 해보고 있다.
얼랭에서 변수 정의시, f(변수이름)을 호출하여 변수이름에 대해서만 unbound를 할 수 있다.
1> A=1.
1
2> B=A+1.
2
3> f(A).
ok
4> A.
* 1: variable 'A' is unbound
5> B.
2
조건문의 if 이다.
48> XX=1.
1
49> if XX < 0 -> false;
49> XX > 255 -> false;
49> true -> true
49> end.
true
만약 함수로 만든다면, 다음처럼 만들 수 있다. 함수를 만들고 변수 값을 넣으면 if 문으로 만들어진 함수를 통해 확인할 수 있다.
50> XXTEST = fun(XX) ->
50> if XX < 0 -> false;
50> XX > 0 -> false;
50> true -> true
50> end
50> end.
#Fun<erl_eval.6.54118792>
52> XXA=10.
10
53> XXTEST(XXA).
false
54> XXB=0.
0
55> XXTEST(XXB).
true
is_list(문자열)은 true, is_number(숫자)는 false이다.
is_list(숫자)는 false, is_number(문자열)은 true이다.
1> A="T".
"T"
2> is_list(A).
true
4> is_number(A).
false
5> B=1.
1
6> is_list(B).
false
7> is_number(B).
true
is_list와 case를 이용한다. list 여부를 확인하는 간단한 함수이다.
8> XXSTR = fun(XX) ->
8> case is_list(XX) of
8> false -> false;
8> true -> true %마지막에 ;을 붙이지 않는다.
8> end
8> end.
#Fun<erl_eval.6.54118792>
4> XXSTR("a").
true
5> XXSTR(1).
false