این مثال محاسبه سود است. برای مثال اگر شما 1500 دلار داشته باشید و سالانه 4.3% سود بگیرید بعد از 4 سال پول شما از طریق فرمول زیر به 1758 خواهد رسید.
A = P(1 + rt)
که در آن r همان نرخ سود و t تعداد سال است و P هم همان پول اولیه شماست. در نوشتن این کد به مشکلی برخوردم و آنهم خواندن نوع اعشاری بود که در کد نحوه آن قابل مشاهده است. نکته دیگر استفاده از دیباگر ارلنگ بود. برای این کار باید debug_info را به نحوه زیر به کد اضافه کنید. کار با دیباگر ارلنگ را در زیر کد توضیح خواهد داد.
-module(ex12). -export([main/0]). -compile([debug_info]). main() -> try run() catch error:_Error -> io:format( "Please Enter only Numeric type~n"); throw:negativeNumber -> io:format( "Please Enter only non-zero positive number~n") end. run() -> {P,I,Y} = readItems(), Total = calc_Investment({P,I,Y}), io:fwrite( "After ~w years at ~w%, the investment will be worth $~w.", [Y,I,Total]). calc_Investment({P,I,Y}) -> P*(1+(I*Y/100)). readItems() -> {ok,[P]} = io:fread( "Enter the principal: ","~d"), %{ok,[I]} = io:fread( % "Enter the rate of interest: ","~f"), {I,_} = string:to_float(string:strip( io:get_line("Enter the rate of interest: "), right, $\n)), {ok,[Y]} = io:fread( "Enter the number of years: ","~d"), if P =< 0 orelse I =< 0 orelse Y =< 0 -> throw(negativeNumber); true -> ok end, {P,I,Y}.
خوب همانطور که مشخص است ابتدا debug_info را به کد اضافه میکنیم. کد را به صورت معمول کامپایل کرده و سپس دیباگر را اجرا میکنیم. دیباگر یک محیط گرافیکی دارد که باید ماژول خود را از قسمت Module انتخاب کنیم و سپس تابع اصلی را انتخاب کنیم. میتوانیم خیلی ساده روی هر خط کد break بگذاریم و خط به خط پیش رویم. کامند ها را بترتیب زیر اجرا میکنیم:
163> c(ex12,debug_info). {ok,ex12} 164> debugger:start(). {ok,<0.552.0>}