সর্বাধিক কার্মিক প্রোগ্রামিং ভাষা (যেমন প্রচলিত পাতার মর্মর, স্কিম / কোলাহল, 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
হাস্কেলের মধ্যে বলার চেষ্টা করেছেন ? এটি তুলনামূলকভাবে কুরুচিপূর্ণ।