2- اینکه از اصول فانکشنال پروگرامینگ تاکید بر خالص بودن فانکشن هاست، بعد متد for each این اصل رو نقض نمیکنه ؟ چون خودش میاد برامون ساید افکت تولید میکنه.
سلام امیر جان،
لامبداها خالص هستن. یعنی همیشه یک شی جدید تولید میکنن و شی اولیه تغییر نمیکنه.
Foreach ناخالص هست و این طبیعیه چون بالاخره شما یه جایی باید تغییر ایجاد کنی.
اگر همه چیز خالص باشه دیگه نمیشه برنامه نویسی کرد.
اکثر فریم ورکهای فانکشنال که خالص هستن، ساید افکتها رو خودشون انجام میدن و به شما محیطی ارایه میکنن که همه چیز خالص هست. اما دلیل بر این نمیشه که ساید افکتی وجود نداره.
اگر متوجه توضیحات من نشدی بگو.
سپهر نامدار۱۲ شهریور ۱۴۰۱، ۱۱:۲۷
ممنون استاد، اینکه میگید خود فریم ورک ساید افکت رو هندل میکنه ولی یک محیط خالص به ما میده رو متوجه نمیشم.
امیر رحمانی۱۲ شهریور ۱۴۰۱، ۱۴:۰۸
امیر جان،
یعنی فریم ورک به شما اجازه نمیده کدی بنویسید که ایجاد ساید افکت کنه.
این کار رو خودش بر عهده میگیره.
برای بهتر فهمیدن این موضوع پیشنهاد میکنم زبان Elm یا هر زبان خالص دیگه رو در حد ابتدایی یاد بگیرید و متوجه بشید چطور کار میکنه.