আমি এই পার্থক্যগুলি কোথায় তা খুঁজে পেতে এবং আরও সাধারণভাবে, এইচএললিস্টগুলি ব্যবহার করা যায় না এমন নীতিগত ব্যবহারের ক্ষেত্রে সনাক্ত করার জন্য সত্যই আগ্রহী (বা বরং, নিয়মিত তালিকার উপরে কোনও উপকার পাবেন না)।
(আমি জানি যে 22 টি আছে (আমি বিশ্বাস করি) TupleN
স্কালায় , যেখানে একজনের কেবলমাত্র একটিমাত্র এইচএললিস্ট প্রয়োজন, তবে এটি আমার আগ্রহী ধারণাবাদী পার্থক্য নয়))
আমি নীচের পাঠ্যটিতে বেশ কয়েকটি প্রশ্ন চিহ্নিত করেছি। তাদের উত্তর দেওয়ার জন্য সম্ভবত এটি প্রয়োজনীয় নাও হতে পারে, এগুলি আমার কাছে অস্পষ্ট বিষয়গুলি উল্লেখ করা এবং আলোচনাকে নির্দিষ্ট দিকনির্দেশনা দেওয়ার জন্য আরও বেশি বোঝানো।
প্রেরণা
আমি সম্প্রতি এসও-তে বেশ কয়েকটি উত্তর দেখেছি যেখানে লোকেরা এইচএললিস্টগুলি ব্যবহার করার পরামর্শ দিয়েছে (উদাহরণস্বরূপ, শেপলেস দ্বারা সরবরাহিত ), এই প্রশ্নের উত্তর মোছা উত্তর সহ । এটি এই আলোচনার জন্ম দিয়েছে , যার ফলস্বরূপ এই প্রশ্নটি ছড়িয়ে পড়ে।
ইন্ট্রো
আমার কাছে মনে হয়, এই লিস্টগুলি কেবল তখনই কার্যকর যখন আপনি স্থিরভাবে উপাদানগুলির সংখ্যা এবং তার সঠিক প্রকারগুলি জানেন। সংখ্যাটি আসলে গুরুত্বপূর্ণ নয়, তবে এটি অসম্ভব বলে মনে হচ্ছে যে আপনি বিবিধ তবে স্থিতিশীলভাবে সুনির্দিষ্টভাবে পরিচিত ধরণের উপাদানগুলির সাথে একটি তালিকা তৈরি করতে হবে তবে আপনি তাদের সংখ্যাটি স্ট্যাটিকালি জানেন না। প্রশ্ন 1: আপনি এমনকি উদাহরণস্বরূপ, একটি লুপে লিখতে পারেন? আমার অন্তর্নিহিততা হ'ল স্থায়ীভাবে অযৌক্তিক সংখ্যক স্বেচ্ছাসেবী উপাদানগুলির (একটি নির্দিষ্ট শ্রেণীর শ্রেণিবিন্যাসের তুলনায় স্বেচ্ছাসেবী) সংক্ষিপ্তভাবে সঠিক তালিকা তৈরি করা ঠিক উপযুক্ত নয়।
এইচএললিস্ট বনাম টিপলস
যদি এটি সত্য হয়, অর্থাত্, আপনি স্থিতিরূপে নম্বর এবং টাইপ জানেন - প্রশ্ন 2: কেন কেবল একটি এন-টিপল ব্যবহার করবেন না? নিশ্চিত, আপনি typesafely ম্যাপ করতে পারেন এবং একটি HList উপর ভাঁজ (যা আপনিও যে কোনো কিন্তু না typesafely, সাহায্যে একটি tuple উপর না productIterator
), কিন্তু নম্বর এবং উপাদান স্ট্যাটিক্যালি পরিচিত ধরণ যেহেতু আপনি সম্ভবত tuple উপাদান অ্যাক্সেস করতে পারে সরাসরি এবং অপারেশন সঞ্চালন।
অন্যদিকে, যদি f
আপনি কোনও লিস্টের উপরে ম্যাপ করা ফাংশনটি এত সাধারণ হয় যে এটি সমস্ত উপাদানকে গ্রহণ করে - প্রশ্ন 3: কেন এটি ব্যবহার করবেন না productIterator.map
? ঠিক আছে, পদ্ধতি ওভারলোডিং থেকে একটি আকর্ষণীয় পার্থক্য আসতে পারে: যদি আমাদের বেশিরভাগ ওভারলোড f
করা হত, যদি লিস্টের সরবরাহকৃত প্রকারের শক্তিশালী তথ্য থাকত (প্রোডাক্ট আইট্রেটারের বিপরীতে) সংকলকটিকে আরও নির্দিষ্ট নির্দিষ্ট করার সুযোগ দিতে পারে f
। তবে, আমি নিশ্চিত নই যে এটি স্ক্যালায় আসলে কাজ করবে কিনা, কারণ পদ্ধতি এবং ক্রিয়াগুলি এক নয়।
এইচলিস্ট এবং ব্যবহারকারী ইনপুট
একই অনুমানের উপর ভিত্তি করে তৈরি করা, যেহেতু আপনাকে স্ট্যাটিক্যালি উপাদানগুলির সংখ্যা এবং প্রকারগুলি জানতে হবে - প্রশ্ন 4: এই লিস্টগুলি এমন পরিস্থিতিতে ব্যবহার করা যেতে পারে যেখানে উপাদানগুলি কোনও ধরণের ব্যবহারকারীর মিথস্ক্রিয়তার উপর নির্ভর করে? উদাহরণস্বরূপ, একটি লুপের ভিতরে উপাদানগুলির সাথে একটি তালিকা তৈরির কল্পনা করুন; নির্দিষ্ট শর্ত ধরে না হওয়া পর্যন্ত উপাদানগুলি কোথাও (ইউআই, কনফিগারেশন ফাইল, অভিনেতা মিথস্ক্রিয়া, নেটওয়ার্ক) থেকে পড়া হয়। তালিকাটি কী ধরণের হবে? একটি ইন্টারফেস স্পেসিফিকেশন getElements জন্য অনুরূপ: এইচএললিস্ট [...] যা স্থির অজানা দৈর্ঘ্যের তালিকাগুলির সাথে কাজ করা উচিত, এবং এটি একটি সিস্টেমের উপাদান A কে উপাদান বি থেকে স্বেচ্ছাসেবী উপাদানগুলির একটি তালিকা পেতে অনুমতি দেয় that