ঠিক আছে, মনে হচ্ছে বিবৃতিটির হৃদয়টি হ'ল:
একটি ডেটা স্ট্রাকচার হ'ল ... প্রোগ্রামিং ল্যাঙ্গুয়েজ
আপনি এটি সম্পর্কে চিন্তা যদি কোনটা সত্য। সর্বোপরি, সংকলকগণ সর্বদা এই ক্রান্তিকালার উপর নির্ভর করে; তারা একটি প্রোগ্রামিং ভাষা গ্রহণ করে, এটি একটি ডেটা স্ট্রাকচারে রূপান্তরিত করে, সেই ডেটাতে কিছু রূপান্তর করে এবং তারপরে ফলাফলটিকে অন্য প্রোগ্রামিং ভাষায় রূপান্তরিত করে।
প্রকৃতপক্ষে, আপনি যদি চাইতেন যে কোনও সি তথ্য কাঠামোর মতো কিছু ক্রেজিও করতে পারেন, যা আপনাকে এর বিভিন্ন পদ্ধতিতে কল করে সি কোড লিখতে দেয় - উদাহরণস্বরূপ (কিন্ডা সি # তে, কারণ এটি আমি এখনই ব্যবহার করছি):
var সি = নতুন হররকোবজেক্ট ();
সি ফাংশন <int> ("মূল", টাইপফ (চর [] []), টাইপফ (ইনট)
। পরিবর্তনশীল ("আমি", টাইপফ (ইনট), 0)
.তাহলে ("আমি", ফানক (i) => আই <10))
। কল ("প্রিন্টফ", "% ডি", "আই")
.PostIncrement ( "আমি")
.EndWhile ();
.Return (0)
.EndFunction ();
এখন, সম্পূর্ণ উদ্ধৃতি হিসাবে: কেন সি এর মধ্যে লেখার (বলার) তুলনায় এরকম কিছু বোকা হবে? এটি স্পষ্টতই স্পষ্ট হওয়া উচিত যে এটি ভার্বোজ এবং এটি সি এর সমতুল্য হিসাবে প্রায় সুস্পষ্ট নয় (এবং বাস্তবে, সি কী করতে পারে তার পুরো সুযোগকে সমর্থন করতে পারে না - টাইপডেফগুলি মুশকিল হবে); সুতরাং, এই ডেটা স্ট্রাকচারটি একটি "বোকা" প্রোগ্রামিং ভাষা, একটি "বাস্তব" প্রোগ্রামিং ভাষায় এম্বেড করা। সেই একই যুক্তিকে আপনি যে কোনও ডেটা স্ট্রাকচারের জন্য ভাবা যেতে পারেন তাতে সাধারণীকরণ করা যেতে পারে; লিঙ্কযুক্ত তালিকাগুলি কেবল লিস্পের একটি "বোকা" সংস্করণ, এবং হ্যাশ মানচিত্রগুলি কিছু তাত্ত্বিক হ্যাশ প্রোগ্রামিং ল্যাঙ্গুয়েজের (হাস্প?) একটি "বোকা" সংস্করণ।
তবে বিষয়টি হ'ল আমাদের হ্যাশ মানচিত্রের সাথে যোগাযোগের জন্য আমরা সবসময় হাস্প লিখতে চাই না। সমস্ত ডোমেন নির্দিষ্ট ভাষার এটিই সমস্যা - একদিকে, একটি ভালভাবে প্রয়োগ করা ডিএসএল অন্তর্নিহিত মডেল যা করতে পারে তার সবগুলি প্রকাশ করার পক্ষে যথেষ্ট শক্তিশালী; অন্যদিকে, আপনাকে প্রথমে ডিএসএল প্রয়োগ করতে হবে এবং তারপরে অন্যান্য লোকেরা এটি শিখতে হবে। এটি সময় এবং প্রচেষ্টা লাগে যে তারা সম্ভবত ব্যয় করতে চান না; সর্বোপরি, আমি কেবল আমার হ্যাশ ম্যাপে জিনিসগুলি রাখতে চাই এবং তারপরে অন্যান্য জিনিসগুলি সেখানে রয়েছে তা পরীক্ষা করতে চাই, আমি হ্যাশ ওরিয়েন্টেড প্রোগ্রামিংয়ের সমস্ত জটিলতা শিখতে চাই না।
সুতরাং, এটি সম্পর্কে চিন্তাভাবনা না করেই আমরা এই তাত্ত্বিক অত্যন্ত সুনির্দিষ্ট এবং খুব স্মার্ট প্রোগ্রামিং ভাষা নিয়ে থাকি এবং একটি ডেটা স্ট্রাকচারের সাথে সংযুক্ত কয়েকটি বোকা অপারেশনগুলিকে এগুলিকে নিচে নামিয়ে দেব। একটি লিঙ্কযুক্ত তালিকায় একটি সহজ পদ্ধতির একটি ছোট সংগ্রহ রয়েছে; একটি হ্যাশ ম্যাপে কিছু অন্য রয়েছে। আমরা অন্যটিকে এড়িয়ে চলি, আরও শক্তিশালী অপারেশনগুলি আপনি সম্ভাব্যভাবে ডেটা স্ট্রাকচারের মাধ্যমে সম্পাদন করতে পারবেন (বেশিরভাগ লিংকডলিস্টের প্রয়োগগুলির একটি। ম্যাপ বা .ফর ফাংশন নেই, উদাহরণস্বরূপ, এবং আপনি এমনকি হাস্পে কী করবেন তা কল্পনাও করতে পারি না), তাদের মূল প্রোগ্রামিং ভাষায় এগুলি স্পষ্টভাবে প্রয়োগের পক্ষে - যা বেশিরভাগ প্রোগ্রামারদের সাথে পরিচিত হতে চলেছে।
ডেটা স্ট্রাকচারগুলি মূলত, তাদের মাতৃভাষার একটি নির্বোধ এক্সটেনশন হ'ল সমস্যা স্থানটিতে যা তারা ধারণাগতভাবে উপস্থাপন করে। পর্যাপ্ত স্মার্ট এক্সটেনশনের জন্য একটি নতুন, নির্দিষ্ট প্রোগ্রামিং ভাষার প্রয়োজন হবে এবং বেশিরভাগ লোকেরা এটি শিখতে চায় না।