۱ - ۱۳تعاریف

۱.

لاندا یا lambda در جبر لاندا حرف یونانی λ ِه که برای معرفی، یا تجرید ِ پارامترها و انقیاد ِ اونها در یک بیانیه استفاده میشه.

۲.

یک تجرید یا abstraction ِلاندا، یک تابع بی‌نام یا جمله‌ی لاندا هست: ‏‎(λx․x + ۱)‎‏. سر بیانیه (‏‎‏‎λx․‎‏‎‏)، جمله‌ی ‏‎x + ۱‎‏ رو جامع یا تجرید می‌کنه. به هر ‏‎x‎‏ ی میشه اعمال‌ش کرد و برای هر ‏‎x‎‏ که لاندا رو بهش اعمال کردیم، جواب متفاوتی رو حساب کنیم.

۳.

اعمال کردن یا application مرحله‌ی اصلیِ محاسبه‌ی لانداهاست. این کار آرگومان رو با پارامترِ مقیّد ِ لاندا جایگزین می‌کنه، و تا زمانی که آرگومانی برای اعمالِ لانداها وجود داشته باشه محاسبات هم ادامه پیدا می‌کنن. به عنوانِ مثال، جمله‌ی ‏‎‏‎(λx․x) ۱‎‏‎‏ به ‏‎۱‎‏ ساده میشه. تابعِ همانی ِ ‏‎λx․x‎‏ به مقدارِ ‏‎۱‎‏ اعمال میشه، ‏‎x‎‏ با ‏‎۱‎‏ جایگزین میشه، و بدنه‌ی لاندا هم فقط ‏‎x‎‏ ه، پس خودِ ‏‎۱‎‏ رو برمی‌گردونه.

۴.

جبر لاندا یا lambda calculus یک سیستم رسمی برای بیان برنامه‌ها به کمک تجریدها و اعمال اونهاست.

۵.

ترتیب معمولی یا normal order یک روشِ رایجِ محاسبات در جبر لاندا هست. ترتیب معمولی یعنی اول محاسبه‌ (ساده‌سازی بتا) ِ چپ‌ترین و بیرونی‌ترین لاندا، و بعد از تموم شدن آرگومان‌ها، محاسبه‌ی لانداهای لایه‌های زیری. خوبه که بدونین ترتیب معمولی روش محاسبه‌ی کد هسکل نیست. هسکل فراخوان-با-نیاز محاسبه می‌کنه؛ یعنی هر وقت لازم شد یه محاسبه رو انجام میده. این روشِ محاسبه رو بعداً بیشتر بررسی می‌کنیم. جواب تمرین‌ها به ترتیبِ معمولی نوشته شدن.