역삼각함수란 삼각함수의 역함수를 의미하고,
역쌍곡선함수란 쌍곡선함수의 역함수를 의미한다.
수학에서 sin 함수의 역함수는 arcsin 으로 표기되는데, ErLang 언어에서는 asin 함수로 구현되어 있다.
ErLang 언어는 Haskell 언어 처럼 순수 함수형 언어이다.
ErLang 언어로 프로그래밍할 때는 각 명령 줄 끝이 콤마(,)로 끝나는지, 마침표(.)로 끝나는지 신경을 단단히 써야 한다. 콤마로 끝나는 줄은 그 다음에 명령이 이어진다는 의미이고, 마침표로 끝나는 것은 그 블록이 (Ruby 언어나 Lua 언어의 end 처럼) 블럭이 끝남을 의미한다.
영문 위키피디아의 ErLang 프로그래밍 언어 설명: http://en.wikipedia.org/wiki/Erlang_(programming_language)
(참고. ErLang 언어는 대소 문자를 구분하며 타입에 동적인 언어이다. 그리고 변수는 대문자로 써야 한다.)
아래의 소스는 컴파일 없이 erl 로 실행하면 되지만,. erlc 로 컴파일 할 경우 생성되는 실행 파일이 *.beam 파일이며 이것을 실행할 때도 조금은 복잡하게 실행해야 한다. (아래의 주석문 참조)
% Filename: testArcSine.erl
%
% Compile: erlc testArcSine.erl
% Execute: erl -run testArcSine main -run init stop -noshell
% Or
% Execute: erl
% > c(testArcSine).
% > testArcSine:main().
%
% Author: P. Kim pkim _AT_ scripts.pe.kr
%
% See: http://erlware.blogspot.kr/2010/10/console-applications-in-erlang.html
%
% Created by PKim pkim _AT_ scripts.pe.kr 2013. 1. 3.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-module(testArcSine).
-author(pkim _AT_ scripts.pe.kr).
-export([main/0]).
asinh(X) -> math:log(X + math:sqrt(X*X + 1)).
acosh(X) -> math:log(X + math:sqrt(X*X - 1)).
main() ->
X = -0.9,
Y = math:asin(X),
io:format("y = asin(~w) = ~.9f~n", [X, Y]),
io:format("sin(~.9f) = ~w~n", [Y, math:sin(Y)]),
io:format("~n"),
X1 = 1.1,
U = acosh(X1),
io:format("u = acosh(~w) = ~.10f~n", [X1, U]),
V = asinh(X1),
io:format("v = asinh(~w) = ~.10f~n", [X1, V]),
io:format("cosh(~.10f) = ~w~n", [U, math:cosh(U)]),
io:format("sinh(~.10f) = ~w~n", [Y, math:cosh(Y)]).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Output:
% y = asin(-0.9) = -1.119769515
% sin(-1.119769515) = -0.9
%
% u = acosh(1.1) = 0.4435682544
% v = asinh(1.1) = 0.9503469298
% cosh(0.4435682544) = 1.1
% sinh(-1.1197695150) = 1.6952514438291528
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'프로그래밍 > ErLang' 카테고리의 다른 글
이진 파일을 읽어서 16진수로 보여주는 HexView 소스 with ErLang (0) | 2013.08.24 |
---|