আমি বুঝতে পারি আমি পার্টিতে দেরিতে আসছি, তবে আপনার এখানে দুটি তাত্ত্বিক উত্তর ছিল, এবং আমি চিবিয়ে দেওয়ার জন্য একটি ব্যবহারিক বিকল্প সরবরাহ করতে চেয়েছিলাম। আমি হ'ল একটি আত্মীয় হাস্কেল নুব হিসাবে এটি নিয়ে আসছি যিনি তবুও সম্প্রতি একটি প্রকল্পের জন্য কাজ করছি যার জন্য তীর বিষয় নিয়ে জোর করে মার্চ করা হয়েছিল।
প্রথমত, আপনি তীরের কাছে না গিয়েই হাস্কেলের বেশিরভাগ সমস্যা উত্পাদনশীলভাবে সমাধান করতে পারেন। কিছু উল্লেখযোগ্য হাস্কেল্লার সত্যিকার অর্থে তাদের পছন্দ করে না এবং ব্যবহার করে না ( এখানে আরও দেখুন , এখানে , এবং এখানে দেখুন)। সুতরাং আপনি যদি নিজেকে বলে থাকেন "আরে, আমার এগুলির দরকার নেই", বুঝতে পারছেন যে আপনি সত্যই সঠিক হতে পারেন।
আমি যখন প্রথমবার শিখেছিলাম তখন তীরগুলি সম্পর্কে আমি সবচেয়ে হতাশাবোধজনক বিষয় হ'ল কীভাবে এই বিষয়ে টিউটোরিয়ালগুলি অনিবার্যভাবে সার্কিটরির উপমা হিসাবে পৌঁছেছিল। আপনি যদি অ্যারো কোডটি দেখে থাকেন - চিনিযুক্ত বিভিন্ন, অন্তত - এটি কোনও হার্ডওয়্যার সংজ্ঞা ভাষার মতো তেমন কিছু দেখায় না। আপনার ইনপুটগুলি ডানদিকে লাইন রেখেছে, আপনার আউটপুটগুলি বাম দিকে, এবং আপনি যদি সেগুলি যথাযথভাবে ওয়্যার আপ করতে ব্যর্থ হন তবে এগুলি কেবল গুলি চালাতে ব্যর্থ হয়। আমি মনে মনে ভাবলাম: সত্যি? এখানেই কি আমরা শেষ করেছি? আমরা কি এমন ভাষা এতটা উচ্চ স্তরের তৈরি করেছি যে এটি আবার তামা তার এবং সোল্ডার নিয়ে গঠিত?
এর যথাযথ উত্তর, যতদূর আমি নির্ধারণ করতে পেরেছি, হ'ল: আসলে, হ্যাঁ। তীরগুলির জন্য এখনই হত্যাকারী ব্যবহারের কেসটি হ'ল এফআরপি (ভাবেন ইয়াম্পা, গেমস, সংগীত এবং সাধারণভাবে প্রতিক্রিয়াশীল সিস্টেম)। এফআরপি-র মুখোমুখি সমস্যাটি মূলত অন্যান্য সমস্ত সিঙ্ক্রোনাস মেসেজিং সিস্টেমগুলির মুখোমুখি একই সমস্যা: কীভাবে প্রাসঙ্গিক তথ্য বা স্প্রিং লিক বাদ না দিয়ে আউটপুটগুলির ধারাবাহিক প্রবাহে ইনপুটগুলির একটি ধারাবাহিক প্রবাহকে তারে আনা যায়। আপনি তালিকা হিসাবে স্ট্রিমগুলি মডেল করতে পারেন - বেশ কয়েকটি সাম্প্রতিক এফআরপি সিস্টেমগুলি এই পদ্ধতির ব্যবহার করে - তবে যখন আপনার প্রচুর ইনপুট তালিকাগুলি পরিচালনা করা প্রায় অসম্ভব হয়ে পড়ে। আপনার বর্তমান থেকে নিজেকে নিরোধক করা উচিত।
এফআরপি সিস্টেমে তীরগুলি যা অনুমতি দেয় তা হ'ল একটি নেটওয়ার্কে ফাংশনগুলির সংমিশ্রণ এবং একই সাথে সেই ফাংশনগুলি দ্বারা পাস করা অন্তর্নিহিত মানগুলির কোনও রেফারেন্স সম্পূর্ণরূপে বিমূর্ত করে দেয়। আপনি যদি এফপিতে নতুন হন তবে এটি প্রথমে বিভ্রান্তিকর হতে পারে, এবং তারপরে এর প্রভাবগুলি শুষে নেওয়ার পরে মন-উদ্দীপক হতে পারে। আপনি শুধুমাত্র সম্প্রতি ধারণা যে ফাংশন আনমনা যাবে শোষিত করেছি, এবং কিভাবে মত একটি তালিকা বুঝতে [(*), (+), (-)]
যেমন ধরনের হচ্ছে [(a -> a -> a)]
। তীরগুলির সাহায্যে আপনি বিমূর্ততাটিকে আরও একটি স্তর এগিয়ে নিয়ে যেতে পারেন।
বিমূর্ত করার এই অতিরিক্ত ক্ষমতা এটির সাথে তার নিজস্ব ঝুঁকি নিয়ে চলেছে। একটি জিনিসের জন্য, এটি জিএইচসিকে কোণার কেসগুলিতে ঠেলে দিতে পারে যেখানে এটি আপনার ধরণের অনুমানগুলি কী করা উচিত তা জানে না। আপনাকে ধরণের স্তরে চিন্তা করতে প্রস্তুত থাকতে হবে - ধরণের এবং র্যাঙ্কএনটাইপস এবং এই জাতীয় অন্যান্য বিষয়গুলি সম্পর্কে শেখার এটি একটি দুর্দান্ত সুযোগ।
আমি "স্টুপিড অ্যারো স্টান্টস" বলি যেখানে কোডার কিছু তীর সংযুক্তকারীটির কাছে পৌঁছায় কেবল তার কারণেই সে টিপলস দিয়ে একটি ঝরঝরে কৌতুক প্রদর্শন করতে চায় তারও বেশ কয়েকটি উদাহরণ রয়েছে। ( উন্মাদনার জন্য এখানে আমার নিজের তুচ্ছ অবদান ।) বন্যের মধ্যে আপনি যখন আসেন তখন এই জাতীয় হট-ডগিং এড়িয়ে চলেন না।
দ্রষ্টব্য: আমি উপরে উল্লিখিত হিসাবে, আমি একটি আপেক্ষিক নুব। আমি যদি উপরের কোনও ভুল ধারণা প্রচার করে থাকে তবে দয়া করে আমাকে সংশোধন করতে দ্বিধা বোধ করবেন।