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ها در یک سیستم واقعی خالص نیستند.