به نام خدا
سلام منو برای تاخیر ببخشید ، کار داشتم دیگه !
خوب بریم سراغ آموزش این قسمت میخوایم درباره نواع داده (Datatype) صحبت کنیم .
اول بریم سراغ کلمات از پیش تعیین شده زبان Erlang .
این ها :
after |
and |
andalso |
band |
begin |
bnot |
bor |
bsl |
bsr |
bxor |
case |
catch |
cond |
div |
end |
fun |
if |
let |
not |
of |
or |
orelse |
receive |
rem |
try |
when |
xor |
خوب اینم از کلمات از پیش تعیین شده که یکم تو نام گذاری متغیر ها استفاده میشه .
میرم سراغ داده ها :
Integer
یا همون مقدار عددی ، توی ارلنگ دو نوع ازInteger ها رو داریم یکی float ها و دیگری خود Integer ها .
Atom
اتم ها به صورت ok ویا ali ویا هر شکلی تو همین حدود نوشته میشن که میشه گفت بیان گر حالی هست و چند تا قاعده داره مثلا حرف اول اتم باید کوچک نوشته بشه و یا نام اتم نباید با نام های از پیش تعین شده یکی باشه ، اگه بخوام یک نمونه مثال بزنم میتونم به آخر بخش اول اشاره کنم که گفتیم اگه برنامه کامپایل شد میگه {ok,first} که ترکیبی از لیست و اتم ها هست .
Boolean
یا همون درست و غلط که یک نوع داده هست که توش دو داده از نوع Atom هست که یا true است یا false .
Bit String
یا رشته بیتی ، زمانی که لازم باشه یک رشته رو به صورت باینری ذخیره میکنه . مثلا برای مقایسه دو فایل به کار میره .
Tuple
یا چند تایی ، یک نوع داده مرکب هست که میتونه دارای هیچ ویا چند عنصر باشه که تعداد عناصر طول رشته رو میسازن .
Map
نوعی از داده هست که میتونه چند نوع از داده هارو تو خودش نگه داره . که هر عنصر به صورت کلید-متعیر هست به مثال زیر نگاه کنید :
در این مثال name و age همون key ها هستند و Alireza و 16 همون متغیرها هستند . دقت کنید که Alireza و 16 از نوع atom هستند چون با حرف بزرگ انگلیسی شروع نشده اند .
نکته : طول یک Map رو عنصر های اون تایین میکنند طول این Map دو هست .
List
یا همون فهرست ، یک نوع داده با چند عنصر که طول list رو عنصر هاش تعیین میکنند .
پیشنهاد میکنم مثال ها رو با دقت بخونید تا بتونید همه چیز رو به خوبی درک کنید چون خیلی چیز ها رو نمیشه شرح داد .
مثال برای :
عددها
توی این مثال عدد 4 و 8 رو باهم جمع کردیم و بعد اون هارو توی فرم (w~) چاپ کردین و سپس با (n~) رفتیم به خط بعدی تا ok که مقادر بازگشتی تابع fwrite از ماژول io هست توی کار ما تداخل ایجاد نکنه .
اتم ها
توی این مثال یک اتم رو چاپ کردیم و بعد رفتیم به خط بعدی (بعدا میگم چطور همه این کار رو توی یک خط انجام بدین)
منطقی ها
فکر نکنم توضیح لازم باشه !
رشته های بیتی
توی این مثال اومدیم یک رشته بیتی درست کردیم و اون رو توی متغری به نام Bin1 قرار دادیم (توی آموز بعدی حسابی برای متغیر ها میگم الان تنها میتونم بگم که متغیر با حرف بزرگ شروع میشه) و تا تابع binary_to_list نوع باینری رو به list تبدیل کردیم و اونو توی متغری به نام X ریختیم و سپس متغیر X رو چاپ کردیم (شما میتونید تابع start رو که سه خط داره توی یک خط بنوسید (مثام برای تمرین) ).
چند تایی ها
توی این مثال یک چندتایی ساختیم و اون رو توی متغیر P قرار دادیم و با کمک تابع tuple_size اندازه (تعداد عناصر) رو گرفتیم و چاپ کردیم .
اگه میگید این که 4 تا عضو داره پش چرا می نویسه 3 تا بهتون پیشنهاد میکنم که به مجموعه های ریاضی یک نگاه کوچیک بکنید.
نقشه ها
توی این مثال یک نقشه با کلید هایی به نام های name و age درست کردیم که به ترتیب مقدار های alireza و 16 رو بهشون دادیم و این نقشه رو توی متغیری به نام M1 ذخیره کردیم .
بعد با تابع map_size اندازه (تعداد کلید ها) ی M1 رو درپافت کردیم و سپس با تابع get از ماژول maps که به صورت (maps:get(Key,Mapp هستش گفتیم برو از M1 مقدار Key ی که اسمش name هست رو بیار ، اونم مثل پسر خوب به حرف ما گوش میکنه ! و بعد ما همه این ها رو چاپ کردیم .
فهرست ها
توی این مثال فهرستی از مضارب 2 از 2 تا 10 رو درست کردیم و و توی متغیری به نام L ریختیم و بغد با تابع length طول اون لیست رو چاپ کردیم .
این هم فایل ها (دانلود کنید ، اجرا کنید ، بفهمید ، توسعشون بدید)
و در آخر شروع ماه محرم و شهادت مظلومانه امام حسین (ع) و یاران ایشون رو به شما تسلیت میگم.