erlang 쉘에서 할 수 있는 테스트를 해보고 있다. 


http://knight76.tistory.com/entry/erlang-erlang-shell-%EA%B0%84%EB%8B%A8-%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%8A%9C%ED%94%8C-%EB%A6%AC%EC%8A%A4%ED%8A%B8


http://knight76.tistory.com/entry/erlang-erlang-shell-%EA%B0%84%EB%8B%A8-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9E%90-%ED%95%A0%EB%8B%B9-%EC%95%A0%ED%86%B0



얼랭에서 변수 정의시, 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






Posted by '김용환'
,