سلام
با توجه به Hybrid بودن زبان اسکالا و پشتیبانی از پاردایمهای FP و OO، برام سوال بود که اگر بخوایم که با پارادایم FP کار کنیم و قاطی کد نزنیم باید یک چارچوب راهنما باشه که کمک کنه. چون آدم مجبور نیست و کد کار میکنه.
تا اینکه با cats آشنا شدم. ولی هنوز درکی از کارکردش ندارم.
cats چه امکاناتی به ما میدهد و چه زمانی خوب هست که استفاده شود؟ یا بهتر است که استفاده نشود؟
در FP با تایپ ستاتیک چندین abstraction معروف از category theory خیلی به کار میان (semigroup, monoid, monad , applicatice…)
کتابخانه cats که اسمش جک از روی اسم category theory هست خیلی از این typeclass ها رو تعریف کرده و برای تایپ های مختلف نوشته اگر اسکالا رو شبیه هسکل میخوای بنویسی cats کارو راحت میکنه
منابع یادگیری :
http://eed3si9n.com/herding-cats
یک کتابخانه دیگه به اسم cats effect هم موجوده که مخصوص IO monad و concurrency کاملا فانکشناله
کدهای من همیشه این روزهای این کتابخانه ها به همراه fs2 دارند
ممنون از پاسخ جامعات.
بنظر میرسه شاید کمی برای من زود باشه و بهتره باشه بیشتر FP یاد بگیرم (مثل Monad).
فقط سوالی که برام پیش میآید اینهکه چقدر کاربردی و practical هست؟ آیا صرفا یک چیز fancy برای Scala هست یا تاثیر مثبتی در کارایی، خوانایی یا productivity میذاره؟
باز هم ممنون
خیلی practical هستش چون کد خیلی ترکیب پذیر میشه و راحت تر میشه درموردش فکر کنی، (equational reasoning)
من فقط از این پارادیم وقتی خارج می شم که دلیل خاصی داشته باشم