আমি যদি ভাবছিলাম যে আমি যদি কোনও ভাষা ডিজাইন করি তবে কীভাবে আমি "নিখুঁত" পরিসীমা আক্ষরিক ডিজাইনের বিষয়ে যাব। আপনার জন্য যারা জানেন না যে কোনও বিবৃতিতে এমন একটি পরিসীমা আক্ষরিক নয় যা 1-4 এর মতো মানের একটি ব্যাপ্তি উপস্থাপন করে। এগুলি / ফরচ লুপগুলির জন্য সর্বাধিক ব্যবহৃত হয়
এক্ষেত্রে দু'টি বিষয় মনে করা উচিত
সমেত ও একচেটিয়া ব্যাপ্তির জন্য সমর্থন, +1 বা -1 এন্ডপয়েন্টগুলিতে তাক লাগিয়ে কিছুটা পলক এবং ত্রুটিযুক্ত বলে মনে হচ্ছে।
পদক্ষেপের জন্য সমর্থন, যাতে আপনি উদাহরণস্বরূপ বিভিন্ন বা এমনকি বিজোড় সংখ্যা তৈরি করতে পারেন
পাঠযোগ্যতা, পরিসীমা আক্ষরিক যা বর্ণনা করে তা সহজেই প্রকাশ হওয়া উচিত
অসম্পূর্ণতা, পরিসীমা আক্ষরিক যা বর্ণনা করে তা পুরোপুরি দ্ব্যর্থহীন হওয়া উচিত
ডিফল্ট সম্ভবত একচেটিয়া থেকে অন্তর্ভুক্ত হওয়া উচিত যেহেতু বেশিরভাগ ক্ষেত্রে অ্যারেগুলি লুপিংয়ের জন্য ব্যবহৃত হয় etc.
যাইহোক, আমি দেখেছি এমন পরিসরের আক্ষরিক একটি উদাহরণ হ'ল রুবি যা একচেটিয়া (শেষের দিকে) পরিসরের জন্য ১.৩ আকারে এবং অন্তর্ভুক্তির (1 টি শেষে) 1 ... 3 আকারে রয়েছে। আপনি 1..10.step (5 )ও করতে পারেন। যত্ন সহকারে বিবেচনা করার পরে আমি দেখতে পেলাম যে দুটি বিষয় আমার কাছে পছন্দ হয়নি (রুবি সম্পর্কে আমার সীমিত জ্ঞান থেকে)
আপনি কেবল অন্তর্ভুক্তিমূলক এবং একচেটিয়া বর্ণনা করতে পারেন। বেশিরভাগ পরিস্থিতিতে বর্ণনা করার সময় এটি কিছুটা বেমানান বলে মনে হয়।
মাত্র একটি অতিরিক্ত দ্বারা পরিবর্তিত। এটি পরিসীমা অন্তর্ভুক্ত বা একচেটিয়া কিনা তা শক্ত করে দেখার পক্ষে এটি একটি রেসিপি বলে মনে হচ্ছে। আমি আপনার সম্পর্কে জানি না তবে ডট এর ঝাপসা কিছু হয়ে যায় :)
রেঞ্জগুলির জন্য স্বরলিখনের মতো পদ্ধতি যুক্ত করা কোনও শ্রেণীর সাথে আক্ষরিকের ধারণাকে মিশ্রিত বলে মনে হচ্ছে যা কিছুটা বেমানান বলে মনে হচ্ছে (এমনকি রেঞ্জগুলি কোনও শ্রেণিতে সংকলিত হয়ে গেলেও)
যাইহোক, বিভিন্ন বিকল্প বিবেচনা করার পরে। আমি এই নিয়ে এসেছি
- [৫.১.১] ৫,৪,৩,২,১
- [১.৫.২ [ ১,২,৩,৪
- ] ১.৫] ২,৩,৪,৫
- [ 0..5..20] 0,5,10,15,20
এবং তাই এগিয়ে। আমি এটি পছন্দ করি কারণ [সাধারণত একটি সেটকে অস্বীকৃতি জানায় এবং এই টাইপটি এটির সাথে ফিট করে, যদিও এটি কোনও সেটের বিপরীতে অর্ডার দেওয়া হবে।
যদিও আমি একচেটিয়াভাবে ছিড়েছি একচেটিয়া / অন্তর্ভুক্ত সূচককে বাধ্যতামূলক করা বা না করা, অর্থাত আপনি কেবল ১.৫ লিখলে ডিফল্টটি হবে 1,2,3,4 যেহেতু এটি অ্যারে ইত্যাদির মধ্যে সবচেয়ে সাধারণ ঘটনা case এটি সহজ এবং আরও পঠনযোগ্য তবে কম সুনির্দিষ্ট এবং আপনাকে যদি লিখতে হয় [1..5] তারা কীভাবে কাজ করে তা সম্পর্কে আপনি প্রথম দিকে শিখেন।
সুতরাং আপনি কী ভাবেন, আমি কি বেশিরভাগ ঘাঁটিগুলি coverেকে রেখেছি, কিছু উপেক্ষা করেছি? আপনি [বাধ্যতামূলক] করতে হবে? আপনি কি আপনার প্রোগ্রামিং ভাষায় বিস্তৃত আক্ষরিক নকশা করবেন?
প্রার্থী
- বন্ধনী শৈলী: [0..10 [ , পদক্ষেপ সহ: [0..5..20 [
- ব্যবধান স্বরলিপি: [0..10) পদক্ষেপ সহ: [0..5..20)
- এক্সক্লুসিভ জন্য এক্সক্লুয়েশন। 0 ..! 10, পদক্ষেপ সহ: 0..5 ..! 20
- বিভিন্ন পদক্ষেপ সহ। 0 ..! 20, 5
- তবে, এটি ডিফল্ট * 0..10 ' সমেত-অন্তর্ভুক্ত করবে
- শব্দযুক্ত: [২০ থেকে ২০!]
আমার অবশ্যই বলতে হবে যে আমার প্রিয় নান্দনিকভাবে এখন পর্যন্ত 0 ..! 10 এবং 0..5 ..! 20 , আমি কেবলমাত্র অন্তর্ভুক্ত-এক্সক্লুসিভের ডিফল্ট 0..10 আরও যুক্তিযুক্ত হতে চাই
1,5,10,15,20
গ্যাপ 4, 5, 5, 5 ?!