আমি হাস্কেলের অ্যাপ্লিকেশনস শিখছি। আমার কাছে মনে হচ্ছে (আমি সম্ভবত ভুল) pure
ফাংশনটি সত্যই প্রয়োজন হয় না, উদাহরণস্বরূপ:
pure (+) <*> [1,2,3] <*> [3,4,5]
হিসাবে লেখা যেতে পারে
(+) <$> [1,2,3] <*> [3,4,5]
pure
ফাংশনটি সুস্পষ্ট ম্যাপিংয়ের মাধ্যমে যে সুবিধাটি সরবরাহ করে তা কেউ ব্যাখ্যা করতে পারেন fmap
?
pure
আবেদনকারী গণনার ক্ষেত্রে একজনকে "শুদ্ধ" মান ব্যবহার করার অনুমতি দেয়। আপনি যেমনটি সঠিকভাবে পর্যবেক্ষণ করেছেন ঠিক তেমনই, pure f <*> x
যেমনটি f <$> x
বলুন, এর মতো কোনও সমতুল্য নেই f <*> x <*> pure y <*> z
। (কমপক্ষে আমি এটি মনে করি না))
Monoid
শ্রেণীর সাথে ঘনিষ্ঠভাবে সম্পর্কিত - যার pure
সাথে Monoid
পরিচয় উপাদানটির সাথে মিল রয়েছে । (এটি পরামর্শ দেয় যে Applicative
এটি pure
আকর্ষণীয় হতে পারে, যেহেতু Semigroup
- যা Monoid
অগত্যা একটি পরিচয় না থাকা - এটি এখনও ব্যবহৃত হয় Act বাস্তবিকই, এখন আমি এটি সম্পর্কে চিন্তা করি, আমি মনে করি মনে করি পিওরস্ক্রিপ্টের ঠিক এমন "প্রয়োগকারী ছাড়াই pure
" শ্রেণি রয়েছে, যদিও আমি ডন করি না এটি কীসের জন্য ব্যবহৃত হয়েছে তা জানেন না))
fmap (\f' x' z' -> f' x' y z') f <*> x <*> z
, আমার মনে হয়। ধারণাটি Applicative
"ইন্টারচেঞ্জ" এর আইন হিসাবে নথিভুক্ত রয়েছে।
pure f <*> x
ঠিক যেমন হয়fmap f x
। আমি নিশ্চিত যে এরpure
অন্তর্ভুক্ত হওয়ার কিছু কারণ রয়েছেApplicative
তবে আমি কেন তা সম্পূর্ণরূপে নিশ্চিত নই।