در برنامه نویسی فانکشنال همه چی حول تابع ها میچرخه و تابع یا همون function اصلی ترین ترین چیز در این سبک برنامه نویسیه. توابع در برنامه نویسی فانکشنال باید خصوصیات زیادی داشته باشن که یکیش نداشتن side effect که این یعنی تابع فقط باید درون context خودش اثر بزاره و هیچ تاثیری بر دنیای بیرون خودش نداشته باشه. حالا context یا دنیای درون خودش یعنی کجا: خیلی سادس یعنی از اول شروع تابع تا خط آخرش. خب دنیای خارج هم مشخص یعنی بیرون تابع.
مثلا وقتی یک متد در یک کلاس جاوا مقدار یک فیلد در سطح کلاس رو تغییر میده side effect هستش یا اینکه وقتی یک متد exception پرت میکنه اینم side effect حساب میشه.
حالا اینه اگه متدها در برنامه نویسی فانکشنال side effect نداشته چه سودی داره بحثش مفصله ولی بصورت خلاصه برنامه maintainable تر میشه و خطای برنامه نویسی کمتری تولید میشه. تست برنامه راحتتر میشه یا اینکه برنامه تست پذیرتر میشه و ...
اگر به برنامه نویسی فانکشنال علاقه دارید شدیدا توصیه میکنم این مقاله رو بخونید.