💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ امیر رحمانی
لامبدا‌ها خالص هستن؟
جامعه جاوا (وب و دسکتاپ) ایجاد شده در ۱۲ شهریور ۱۴۰۱

سلام استاد وقت بخیر

استاد:

1- لامبدا‌ها خالص هستن؟

2- اینکه از اصول فانکشنال پروگرامینگ تاکید بر خالص بودن فانکشن هاست، بعد متد for each این اصل رو نقض نمیکنه ؟ چون خودش میاد برامون ساید افکت تولید میکنه.

سلام امیر جان،

لامبدا‌ها خالص هستن. یعنی همیشه یک شی جدید تولید میکنن و شی اولیه تغییر نمیکنه.

Foreach ناخالص هست و این طبیعیه چون بالاخره شما یه جایی باید تغییر ایجاد کنی.

اگر همه چیز خالص باشه دیگه نمیشه برنامه نویسی کرد.

اکثر فریم ورک‌های فانکشنال که خالص هستن، ساید افکت‌ها رو خودشون انجام میدن و به شما محیطی ارایه میکنن که همه چیز خالص هست. اما دلیل بر این نمیشه که ساید افکتی وجود نداره.


اگر متوجه توضیحات من نشدی بگو.

سپهر نامدار ۱۲ شهریور ۱۴۰۱، ۱۱:۲۷

ممنون استاد، اینکه میگید خود فریم ورک ساید افکت رو هندل میکنه ولی یک محیط خالص به ما میده رو متوجه نمیشم.


امیر رحمانی ۱۲ شهریور ۱۴۰۱، ۱۴:۰۸

امیر جان،

یعنی فریم ورک به شما اجازه نمیده کدی بنویسید که ایجاد ساید افکت کنه.

این کار رو خودش بر عهده میگیره.

برای بهتر فهمیدن این موضوع پیشنهاد میکنم زبان Elm یا هر زبان خالص دیگه رو در حد ابتدایی یاد بگیرید و متوجه بشید چطور کار میکنه.

بهترین پاسخ
سپهر نامدار ۲۸ شهریور ۱۴۰۱، ۰۸:۴۲