Functional Programming سبکی از برنامهنویسی است که محاسبه را بر پایه ترکیب توابع، داده تغییرناپذیر و کم کردن Side Effect سامان میدهد.
نحوه استفاده در عمل
بهجای تغییر مستقیم یک آرایه مشترک، میتوان با map فهرست جدیدی از قیمتهای دارای تخفیف ساخت.
نمونه کد
const discounted = prices.map(price => Math.round(price * 0.9));
برنامهنویسی تابعی لزوماً به معنی حذف همه وضعیتها نیست. هدف کنترل پیچیدگی تغییر داده و وابستگیهای پنهان است.
تبدیل داده با فانکشن خالص
def apply_discount(price: int, percent: int) -> int:
return price - price * percent // 100
new_prices = [apply_discount(p, 10) for p in (100, 250)]
در برنامهنویسی تابعی، فانکشن خالص با ورودی یکسان خروجی یکسان میدهد و وضعیت بیرونی را تغییر نمیدهد. این ویژگی تست و Reasoning را ساده میکند، اما همه I/Oها در یک سیستم واقعی خالص نیستند.