۴ - ۱۱اسمها و متغیرها
اسمها
در هسکل، هفت رده از اشیائی که اسم دارن وجود داره: توابع، متغیرهای سطحِ جملهای،ودادهسازها، متغیرهای تایپی،ونوعسازها، تایپکلاسها، و ماژولها. متغیرهای سطح جملهای و دادهسازها در جملاتاند. سطح جمله جاییه که مقادیر و کُدی که به همراه برنامه اجرا میشه وجود دارن. در سطح نوعی (که برای آنالیزِ ایستا و تأیید برنامه استفاده میشه)ومتغیرهای تایپی، نوعسازها، و تایپکلاسها رو داریم. و در نهایت، برای سازماندهیِ کُدِمون به گروههای مرتبط بین فایلهای مختلف، ماژولها رو داریم.
رسم و رسوم برای متغیرها
متغیرها زیاد کاربرد دارن، و به همین دلیل رسم و رسومهایی به وجود اومدن. واجب نیست اینها رو حفظ کنین، چون قاعده و قانون نیستن، ولی دونستنشون به خوندنِ کد هسکل کمک میکنه.
متغیرهای تایپی (که در تایپ سیگنچرها نوشته میشن) معمولاً از a
شروع میشن و ادامه پیدا میکنن: a
،وb
،وc
، و الی آخر. ممکنه گاهی اوقات یه عدد هم جلوشون بیاد، مثل a1
.
وقتی توابع به عنوان آرگومان استفاده میشن، عموماً با حرف f
و حرفهای بعدش نامگذاری میشن (یعنی g
،وh
، و غیره). گاهی اوقات با عدد (مثل f1
)، یا کاراکترِ ′
هم دیده میشن، مثل 'f
(میخونیم اِف-پریم) که معمولاً زمانی کاربرد داره که 'f
رابطهی نزدیکی با f
داره یا یه تابع کمکیه. توابع ممکنه با حروف دیگه هم برای کمک به یادآوریِ کاری که انجام میدن، نامگذاری بشن؛ مثل p
برای تابعی که اعداد اول رو برمیگردونه، یا txt
برای تابعی که متنی رو از جایی برمیداره.
اسم متغیرها نباید حتماً تک حرفی باشن. تو برنامههای کوچیک معمولاً هستن؛ ولی تو برنامههای بزرگ بهتره که تک حرفی نباشن. وقتی تعداد متغیرها زیاد میشه (که زیاد هم اتفاق میوفته) خوبه که اسمهای توصیفکننده داشته باشن. پیشنهاد هم میشه که برای هر زمینهای، از اصطلاحات همون زمینه برای اسم متغیرها استفاده بشه.
پارامترِ توابع معمولاً با x
و حروف بعد از اون نامگذاری میشن، و باز هم ممکنه با اعداد دیده بشن، x1
. بقیهی حروف هم برای متغیرهای تک-حرفی استفاده میشن، مثل r
برای شعاع دایره.
اگه لیستی دارین که چیزهای داخلش رو با x
نشون دادین، عُرف اینه که خودِ لیست رو با xs
، که حالت جمعِ x
ِه (م. s ِجمع) نمایش بدیم. این نوع نگارش رو معمولاً با این حالت میبینین: (x:xs)
، که یعنی لیستی داریم که سَرِش با x
و مابقیش با xs
مشخص شدن.
باز هم تکرار میکنیم که اینها فقط عُرفِ نگارشیاند، و اصلاً قاعده برای کدنویسیِ هسکل به حساب نمیان. ما بیشترِ کُدهامون رو با همین سبک نوشتیم، ولی همهی کدهای هسکل که بعداً میبینین اینطور نیستن. استفاده از x
بجای a
برای یک متغیرِ تایپ مشکلی ایجاد نمیکنه (اینجا هم مثل جبر لاندا، اسمها به خودیِ خود مفهومی ندارن). اینها رو بیان کردیم که بیشتر با رسم و رسومِ رایجِ هسکل آشنا بشین.