در این قسمت در رابطه با توابع مرتبه بالا و یا Higher Order Function که به طور کوتاه به آنها HOF نیز میگوییم صحبت خواهیم کرد. منظور از یک Higher Order Function در واقع تابعی است که یکی از شرایط زیر را دارد.
کاربرد توابع مرتبه بالا در زبان های برنامه نویسی تابع گرا بسیار زیاد هستند. در ادامه مثال هایی از این نوع از توابع را بررسی خواهیم کرد.
مثالی که در قسمت زیر مشاهده می کنید نحوه تعریف کردن یک Higher Order Function را در زبان برنامه نویسی PHP نشان می دهد. احتمالاً میدانید که زبان برنامه نویسی PHP یک زبان شی گرا است. لطفاً کد زیر را ببینید.
[c++]
$twice = function($f, $v) {
return $f($f($v));
};
$f = function($v) {
return $v + 3;
};
echo($twice($f, 7));
[/c++]
خروجی این کد شبیه به قسمت زیر خواهد بود.
13
حال اگر بخواهیم همین کار را در زبان برنامه نویسی Python به عنوان یک زبان برنامه نویسی تابع گرا لحاظ کنیم میتوانیم شبیه به قسمت زیر عمل کنیم.
[c++]
def twice(function):
return lambda x: function(function(x))
def f(x):
return x + 3
g = twice(f)
print g(7)
[/c++]
خروجی این کد شبیه به قسمت زیر خواهد بود.
13
یکی از کاربردهای این نوع از توابع تعریف کردن یک Callback Function میباشد. منظور از Callback Function تابعی است که پس از تکمیل شدن یک تابع میبایست اجرا بگردد.
منبع: وبسایت پرووید