সর্বাধিক কার্মিক প্রোগ্রামিং ভাষা (যেমন প্রচলিত পাতার মর্মর, স্কিম / কোলাহল, Clojure, Haskell,, Scala, Ocaml, SML) যেমন তালিকার কিছু সাধারণ উচ্চতর-অর্ডার ফাংশন, সমর্থন map, filter, takeWhile, dropWhile, foldl, foldr(দেখুন উদাঃ , প্রচলিত পাতার মর্মর, স্কিম / কোলাহল ক্লোজারের পাশাপাশি- ওপরে রেফারেন্স শীট , হাস্কেল , স্কালা , ওক্যামেল এবং এসএমএল ডকুমেন্টেশন)
সি ++ 11 এর কি সমমানের মান পদ্ধতি বা তালিকায় ফাংশন রয়েছে? উদাহরণস্বরূপ, নিম্নলিখিত হাস্কেল স্নিপেট বিবেচনা করুন:
let xs = [1, 2, 3, 4, 5]
let ys = map (\x -> x * x) xs
আমি কীভাবে আধুনিক মানের সি ++ তে দ্বিতীয় প্রকাশটি প্রকাশ করতে পারি?
std::list<int> xs = ... // Initialize the list in some way.
std::list<int> ys = ??? // How to translate the Haskell expression?
উপরে উল্লিখিত অন্যান্য উচ্চ-অর্ডার ফাংশনগুলি সম্পর্কে কী?
এগুলি কি সরাসরি সি ++ তে প্রকাশ করা যেতে পারে?
[a]। আপনাকে হয় প্রিলিড ফাংশনটি গোপন করতে হবে, উপস্থাপকের চারপাশে হ্যাক করতে হবে বা একটি আলাদা এবং কম স্বজ্ঞাত নাম চয়ন করতে হবে।
Functor, Foldableএবং Traversableএটি বিমূর্তভাবে এমনভাবে অর্জন করুন যাতে আমি ভাবতে পারি। Data.Sequenceএই সমস্তগুলির একটি উদাহরণ, যাতে আপনি ঠিক করতে পারেন fmap (\x -> x * x) xs। mapহয় fmapনতুনদের জন্য বিশেষ।
Data.Sequenceহাস্কেলের মধ্যে বলার চেষ্টা করেছেন ? এটি তুলনামূলকভাবে কুরুচিপূর্ণ।