برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

ارلنگ زبان برنامه نویسی تابعی و همروند است

برنامه نویسی به زبان ارلنگ

در این وبلاگ مطالب مربوط به ارلنگ و الیکسیر منتشر خواهد شد

  • ۰
  • ۰

در این مثال قرار است کارکردن با عبارات شرطی نظیر if تست شود هرچند در ارلنگ در بسیاری از موارد می‌توان از آن صرفنظر کرد و با خود توابع و تطابق الگو به این کارکرد رسید. برای این مثال قرار است مبلغ و اسم ایالت پرسیده شود چنانچه نام ایالت WI بود 5.5% درصد مالیات محاسبه شده و مقدار کل برگردد و در غیر اینصورت همان مبلغ اصلی برگشت داده شود. برای چاپ خروجی از if استفاده کردم اما برای محاسبه با استفاده از تطابق الگو تمایز ایجاد کردم.  در این مثال برای نخستین بار سعی در مستند سازی کد کردم که در پست مربوطه  به آن توضیح مفصل خواهم داد.

%%@author Mahdi Hosseini Moghaddam <m.hoseini.m@gmail.com>
%%@doc Exercise 14 from "Exercises for programmers" Book
%%@reference from <a href="http://erlang.blog.ir">مثال هایی در ارلنگ</a>,
%% 2016
%%@copyright 2018 by Mahdi Hosseini Moghaddam
%%@version 0.1
-module(ex14).
-export([main/0]).
-define(WITAX, 0.055).
%@doc This is my main function, It handles the exceptions and runs the program
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.
%@doc This fucntion print out the result, it first calls readData function then calc_Tax to calculate the result
run() ->
	{A, State} = readData(),
	{At, Taxed} = calc_Tax(A, State),
	if
		State =="WI" ->
		io:fwrite("The subtotal is $~w~n The tax is $~w~n the total is ~.2f~n"
					,[A,Taxed,At]);
		true ->
			io:fwrite("The total is $~w~n",[At])
	end.
%@doc This function calculates the tax
calc_Tax(A,"WI") -> 
	{A * (1+?WITAX),A * ?WITAX};
calc_Tax(A,_) ->
	{A,0}.
	
%@doc This function reads the user input the returns the result, it checks for invalid input like negative numbers
readData() ->
	{ok,[A]} = io:fread(
		"What is the order amount? ","~d"),
	State = string:strip(io:get_line("What's the state? "),right,$\n),
	if
		A =< 0  -> 
			throw(negativeNumber);
		true -> ok
	end,
	{A, State}.
  • ۹۷/۰۲/۳۰
  • مهدی حسینی مقدم

ارلنگ

مثال هایی در ارلنگ

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی