۲۶ - ۶فراخوان با اسم، فراخوان با نیاز

یه راه دیگه برای تمایز بین استراتژی‌های محاسباتِ مختلف، تقسیم‌بندی اونها به سه دسته‌ی فراخوان با اسم، فراخوان با نیاز، و فراخوان با مقدار ِه.

۱.

فراخوان با مقدار: آرگومان‌ها قبل از ورود به تابع محاسبه میشن. بیانیه‌هایی که انقیادها بهشون اشاره دارن، قبل از درست شدنِ انقیادها محاسبه میشن. به این استراتژی اکید گفته میشه؛ همون محاسبه‌ی داخل-به-بیرون.

۲.

فراخوان با اسم: بیانیه‌ها می‌تونن بدونِ اینکه حساب بشن، آرگومانِ توابع باشن؛ گاهی اوقات ممکنه اصلاً محاسبه نشن. میشه بدون محاسبه‌ی بیانیه‌ها، براشون انقیاد درست کرد. این یکی از استراتژی‌های نااکید ِه. اینجا محاسبات از بیرون به داخل انجام میشن.

۳.

فراخوان با نیاز: این مثلِ فراخوان با اسم ِه، با این تفاوت که بیانیه‌ها فقط یک بار محاسبه میشن. GHC Haskell بعضی اوقات اینطوری محاسبه می‌کنه، معمولاً وقتهایی که بیانیه لاندا ِ آرگومان‌دار نباشه و اسم هم داشته باشه. این نتیجه‌های اسم‌دار، فقط در GHC Haskell به اشتراک گذاشته میشن (یعنی یه پیاده‌سازی ِ دیگه از هسکل غیر از GHC ممکنه یه جور دیگه کار کنه). این هم نااکید و بیرون-به-داخل ِه.