۲ - ۱۲تعاریف
۱.
معمولاً دو لغتِ آرگومان و پارامتر به جای همدیگه استفاده میشن، ولی خوبه که فرقشون رو یاد بگیریم. پارامتر، یا پارامترِ صوری، نمایندهی مقداریه که موقع صدا زدنِ تابع، به تابع داده میشه. پس پارامترها معمولاً متغیر اند. آرگومان یه مقدار ورودیه که تابع بهِش اعمال میشه. وقتی تابع به یه آرگومان اعمال میشه، پارامترِ تابع به مقدارِ اون آرگومان مقیّد میشه. برای مثال، در تابعِ f x = x + 2
که ورودیش رو با ۲ جمع میکنه، x
تنها پارامترِ تابعه. کد رو با اعمالِ f
به یه آرگومان اجرا میکنیم، و اگه آرگومانی که به پارامترِ x
میدیم ۲ باشه، جوابمون ۴ میشه. ولی آرگومانها ممکنه خودشون متغیر، یا بیانیههای شامل متغیر باشن، به همین خاطر همیشه فرق بین آرگومان و پارامتر واضح نیست. تو این کتاب هر وقت میگیم پارامتر، همیشه منظورمون پارامترِ صوری ِه (معمولاً در یه تایپ سیگنچر). از طرف دیگه، لغت آرگومان رو کمی آزادانه به کار بردیم.
۲.
بیانیه یا expression ترکیبی از علائمیِه که قواعد گرامری رو رعایت میکنه و امکان داره که به یک جواب ساده بشه. به زبان هسکل، بیانیه یک ترکیبِ با قاعده از مقادیر ثابت، متغیرها و توابعه. با اینکه مقادیر ثابت در واقع بیانیهاند، معمولاً به "مقدار" خطابشون میکنیم، پس وقتی میگیم بیانیه، معمولاً منظورمون بیانیهی سادهشدنیه.
۳.
مقدار یا value بیانیهایه که سادهتر نمیشه. 2 * 2
بیانیهست، ولی مقدار نیست. در مقابل، جوابش (که میشه ۴) یه مقداره.
۴.
تابع یا function یک جسم ریاضیه، که فقط میتونه به یه آرگومان اعمال بشه و جوابی رو برگردونه. توابع رو میشه به عنوان یه لیستی از جفتهای مرتب (ورودی و خروجیِ حاصل از اون ورودی) هم تعریف کرد، مثل یک نگاشت. با اعمال تابعِ f x = x + 2
به ۲، جفتِ مرتب ِ ورودی و خروجی (2, 4)
میشه.
۵.
نوشتارِ میانوندی یا infix notation سبکی از نوشتاره که در حساب و منطق به کار میره. منظور از میانوندی اینه که عملگر، بین آرگومانهاش قرار میگیره. یک نمونه از این نوع عملگرها علامت جمع در بیانیهای مثل 2 + 2
است.
۶.
عملگر یا اوپراتور ها توابعی هستن که در حالتِ پیشفرض میانوندی اند. در هسکل، اوپراتورها باید با علائم، و نه با حروف یا اعداد، تعریف بشن.
۷.
شکر گرامری یا syntactic sugar گرامری از یک زبانِ برنامهنویسیه که فقط برای آسونتر شدنِ خوندن و نوشتن بیانیهها درست شده.