কম্পিউটার

সুইফটে ফাংশন কম্পোজিশনের একটি দ্রুত ভূমিকা

প্রোগ্রামাররা প্রতিদিন ফাংশন জুড়ে আসে। একটি ফাংশন একটি বিশেষ ধরনের সম্পর্কের প্রতিনিধিত্ব করে:প্রতিটি ইনপুট মান যা ফাংশন নেয় তা কিছু আউটপুট মানের সাথে যুক্ত থাকে। সুতরাং আরও সাধারণ উপায়ে, একটি ফাংশন হল একটি নিয়ম যা কিছু ইনপুট মানকে একটি আউটপুট মানের সাথে ম্যাপ করে।

ফাংশন কম্পোজিশনের পিছনে মূল ধারণা হল একটি ফাংশনকে অন্য ফাংশনের ফলাফলে প্রয়োগ করা। সুতরাং এটি একটি গাণিতিক ধারণা একটি ফাংশনে ফাংশন একত্রিত করা।

সুইফটে ফাংশন কম্পোজিশনের একটি দ্রুত ভূমিকা
ফাংশন রচনা

শুরু করা

আসুন গাণিতিক ধারণার সাথে এটি নিয়ে আলোচনা করি। উপরের চিত্রে, "f" এবং "g" দুটি ফাংশন। আমরা নিচের মত ফাংশন উপস্থাপন করতে পারি:

f: A -> Bg: B -> C

যদি আমরা এই দুটি ফাংশনের সমন্বয় করি, তাহলে আমরা এটিকে "g o f" হিসাবে উপস্থাপন করতে পারি (আপনি f এর g বলতে পারেন)।

(g o f): A -> C such that (g o f)(a) = g(f(a)) for all a in A

আসুন একটি সাধারণ উদাহরণ দিয়ে এটি আরও অন্বেষণ করার চেষ্টা করি:

Let f(a) = 2a + 3 & g(a) = 3a + 5, then function composition
(g o f)(a) = g(f(a)) = 3(f(a)) + 5 = 3(2a + 3) + 5 = 6a + 14

এই ধারণাটি শুধুমাত্র গণিতে প্রযোজ্য নয় - আমরা এটি প্রোগ্রামিং ভাষাতেও প্রয়োগ করতে পারি। সেই ভাষাগুলোকে ফাংশনাল প্রোগ্রামিং ল্যাঙ্গুয়েজ বলা হয়। এই ধারণাটি বোঝা আপনার কোড পঠনযোগ্যতা উন্নত করে এবং অন্যান্য প্রোগ্রামারদের জন্য বোঝা সহজ করে তোলে।

একটি কার্যকরী প্রোগ্রামিং ভাষা হিসাবে সুইফটের একটি ভূমিকা

এখন, ভাল খবর হল যে সুইফট একটি কার্যকরী প্রোগ্রামিং ভাষা। সুইফ্ট প্রোগ্রামিং-এ, একটি ফাংশনের সবচেয়ে গুরুত্বপূর্ণ ভূমিকা রয়েছে, তাই আপনি প্রতিদিন তাদের সাথে যোগাযোগ করবেন। একটি সুইফ্ট ফাংশন একটি মান ফেরত দিতে পারে, এবং তারপর আমরা অন্য ফাংশনে একটি ইনপুট হিসাবে ফেরত মান ব্যবহার করতে পারি। এটি একটি সাধারণ প্রোগ্রামিং অনুশীলন।

সুইফটে ফাংশন কম্পোজিশন বাস্তবায়ন করা

ধরুন আমাদের কাছে পূর্ণসংখ্যার একটি অ্যারে আছে, এবং আমরা চাই আউটপুটটি অনন্য জোড় পূর্ণসংখ্যার একটি বর্গাকার অ্যারে হোক। তাই এর জন্য সাধারণত, আমরা নিচের মত ফাংশন প্রয়োগ করব:

এই কোডটি আমাদের সঠিক আউটপুট দেয়, কিন্তু আপনি দেখতে পাচ্ছেন, কোডটির পঠনযোগ্যতা দুর্দান্ত নয়। এছাড়াও, ফাংশন কলিং অর্ডারটি আমরা যা চাই তার বিপরীতের মত দেখায় এবং এটি কিছু নতুন প্রোগ্রামারদের জন্য বিভ্রান্তি তৈরি করতে পারে। কোডের এই ব্লক বিশ্লেষণ করা কঠিন।

সুতরাং উপরের সমস্ত সমস্যা থেকে আমাদের উদ্ধার করতে এখানে ফাংশন কম্পোজিশন এসেছে। আমরা জেনেরিক, ক্লোজার এবং ইনফিক্স অপারেটরের সুবিধা গ্রহণ করে ফাংশন কম্পোজিশন অর্জন করতে পারি।

তাহলে আসুন দেখি উপরের কোডের ব্লকে কি ঘটছে:

  1. আমরা একটি কাস্টম ইনফিক্স অপারেটর “>>>” ঘোষণা করেছি। এটি + অপারেটরের মতই সহযোগীতা এবং অগ্রাধিকার ক্রম রেখে গেছে।
  2. আমরা একটি ফাংশন ঘোষণা করেছি যার নাম ইনফিক্স অপারেটরের নামের মতো। ফাংশনটি তিনটি জেনেরিক T, U, V ব্যবহার করে এবং এটি ইনপুট পরামিতি হিসাবে দুটি বন্ধ করে দেয়।
  3. বাম প্যারামিটারটি একটি বন্ধ, এবং এটি T টাইপের একটি ইনপুট নেয় এবং U টাইপের একটি আউটপুট প্রদান করে।
  4. সঠিক প্যারামিটারটিও একটি বন্ধ, এবং এটি U টাইপের একটি ইনপুট নেয় এবং V টাইপের আউটপুট প্রদান করে।
  5. এখন,>>> ফাংশনটি একটি ফাংশন বা ক্লোজার প্রদান করে, যার ধরন (T) → V আছে। আউটপুট ক্লোজার T টাইপের একটি ইনপুট নেয় এবং V টাইপের আউটপুট প্রদান করে। এখানে বাম দিকের আউটপুট প্যারামিটার হল সঠিক প্যারামিটারের ইনপুট।
left :  (T) -> U right: (U) -> V
Output Type: (T) -> V

আপনি যদি ফাংশন কম্পোজিশনের গাণিতিক উপস্থাপনা বুঝতে পারেন, তাহলে আপনি দেখতে পাবেন যে এটি সুইফটের বাস্তবায়নের সাথে ঠিক একই রকম।

6. ফাংশন বডিতে, এটি বাম প্যারামিটারে ডান প্যারামিটারের ফলাফল প্রদান করে।

এখন যদি আমরা একই ফলাফল চাই (অনন্য জোড় পূর্ণসংখ্যার একটি বর্গাকার অ্যারে), আমরা ফাংশন কম্পোজিশন দিয়ে এটি করতে পারি।

এটি ফাংশনের একটি চেইন যা একই ফলাফল প্রদান করে। ফাংশন ক্রম এখন একজন মানুষ যা ভাবতে পারে তার অনুরূপ দেখায়। এটির আরও ভাল পঠনযোগ্যতা রয়েছে এবং প্রত্যেকের জন্য বোঝা সহজ৷

পড়ার জন্য আপনাকে ধন্যবাদ!


  1. জাভাস্ক্রিপ্টে ফাংশন প্রোটোটাইপ

  2. জাভাস্ক্রিপ্টে ফাংশন ধার করা।

  3. CSS rgba() ফাংশন

  4. C-তে fillpoly() ফাংশন