“নির্ভরশীল ধরণ” পেয়ে আমরা কী লাভ করি?


13

আমি ভেবেছিলাম আমি নির্ভরশীল টাইপিং (টিটি) সঠিকভাবে বুঝতে পেরেছি, তবে এই প্রশ্নের উত্তর: /cstheory/30651/why-was-there-a-need- for-martin-l%C3% বি 6 এফ-টু-ক্রিয়েট-ইন্টুশনিশিস্টিক-টাইপ-থিওরি আমাকে অন্যথায় ভাবতে বাধ্য করেছে।

ডিটি পড়ার পরে এবং সেগুলি কী তা বোঝার চেষ্টা করার পরে আমি অবাক হওয়ার চেষ্টা করছি, টিটি-র এই ধারণাটি দিয়ে আমরা কী অর্জন করব? এগুলি কেবল টাইপ করা ল্যাম্বদা ক্যালকুলাস (এসটিএলসি) এর চেয়ে আরও নমনীয় এবং শক্তিশালী বলে মনে হচ্ছে, যদিও আমি "কীভাবে / কেন" ঠিক বুঝতে পারি না।

এসটিএলসি দিয়ে করা যায় না এমন আমরা ডিটি দিয়ে কী করতে পারি? মনে হচ্ছে ডিটি যুক্ত করার ফলে তত্ত্বটি আরও জটিল হয়ে উঠেছে, তবে কী লাভ?

উপরের প্রশ্নের উত্তর থেকে:

ডি ব্রুইজন এবং হাওয়ার্ড নির্ভরশীল প্রকারগুলি প্রস্তাব করেছিলেন যারা কারি-হাওয়ার্ডের চিঠিপত্রকে প্রস্তাবের থেকে প্রথম-আদেশের যুক্তিতে প্রসারিত করতে চেয়েছিলেন।

এটি কোনও স্তরে বোধগম্য মনে হয় তবে আমি "কিভাবে / কেন" এর বড় চিত্রটি বুঝতে পারি না? হতে পারে একটি উদাহরণ স্পষ্টভাবে এফও যুক্তির সাথে সিএইচ চিঠিপত্রের এই প্রসারকে দেখায় যে ডিটিগুলির সাথে বড় চুক্তিটি কী তা বুঝতে পয়েন্ট হোমে আঘাত করতে সহায়তা করতে পারে? আমি নিশ্চিত নই যে আমারও এটি বোঝা উচিত।


1
আপনি তাদের googled আছে? আপনি কি কাকের কথা শুনেছেন, নির্ভরশীল ধরণের উপর নির্মিত একটি উপপাদ্য প্রবাদ? আপনি কি জানেন যে 4 রঙের উপপাদক কোক ব্যবহার করে প্রমাণিত হয়েছে?
ডেভ ক্লার্ক

2
আমি আসলে করেছি। গুগলের কাছে কঠিন যেটি হ'ল সেই অতিরিক্ত "শক্তি" (আরও ভাল শব্দের অভাবের জন্য) যা ডিটিইগুলি তত্ত্বটি স্বজ্ঞাতভাবে বলতে চাইলে তত্ত্ব টাইপ করতে ?ণ দেয়?
পিএইচডি

1
কেন? নির্ভরশীল প্রকারগুলি টাইপ-সেফ থাকা অবস্থায় আপনাকে আরও প্রোগ্রাম টাইপ করার অনুমতি দেয়। কিভাবে? প্রোগ্রামগুলির সাথে প্যারামিটারাইজিং ধরণের মাধ্যমে।
মার্টিন বার্গার

@ মার্টিনবার্গার - আপনি কি আরও "আরও প্রোগ্রাম" সম্পর্কে বিস্তারিত বলতে পারেন? তাত্ত্বিক দৃষ্টিকোণ থেকে আমি আরও "কী" বা করতে পারি?
পিএইচডি

2
@ ডেভ ক্লার্ক দ্যাট কোক, অভিনব ধরণের সাথে, অভিনব জিনিসগুলি ব্যবহার করতে ব্যবহৃত হয়েছে তা বোঝায় না যে এই অভিনব জিনিসগুলিতে those অভিনব ধরণের প্রয়োজন। উদাহরণস্বরূপ দ্বাদশটির বড় সাফল্য রয়েছে (যেমন এসএমএলের সঠিকতার প্রমাণ হিসাবে), এবং এটি কেবল দ্বিতীয়-ক্রম, উচ্চতর-অর্ডার নয়। আমি দেখেছি বেশ কয়েকটি দুর্দান্ত সিস্টেম কেবল প্রথম-আদেশের যুক্তি দিয়ে প্রমাণিত।
গিলস

উত্তর:


22

λList23+4(α)10α23+4

নির্ভরযোগ্য প্রকারের থেকে নির্ভর করে পৃথক হওয়া মূল নিয়মটি হ'ল অ্যাপ্লিকেশন:

ΓM:ABΓN:AΓMN:BΓM:ΠxA.BΓN:AΓMN:B{N/x}

বাম দিকে আপনার কাছে এসটিএলসি রয়েছে, যেখানে প্রাঙ্গণে প্রোগ্রামগুলি কেবল উপসংহারের প্রোগ্রামে 'প্রবাহিত' হয়। বিপরীতে, ডানদিকে নির্ভর অ্যাপ্লিকেশন নিয়মে, ডান অনুক্রম থেকে প্রোগ্রাম 'প্রবাহিত' উপসংহারে টাইপ typeN1

প্রোগ্রামগুলির মাধ্যমে ধরণের প্যারামিটারাইজ করতে সক্ষম হওয়ার জন্য, নির্ভরশীল প্রকারের বাক্য গঠনটি আরও সমৃদ্ধ হতে হবে এবং প্রকারগুলি সুসংহত হয়েছে তা নিশ্চিত করতে আমরা টাইপগুলিকে সীমাবদ্ধ বলে টাইপ করা দ্বিতীয় 'টাইপিং সিস্টেম' ব্যবহার করি। এই ধরনের সিস্টেমটি মূলত এসটিএলসি, তবে "এক স্তর উপরে"।

নির্ভরশীল ধরণের অনেক ব্যাখ্যা রয়েছে। কিছু উদাহরণ.


1 রঙের নিরিখে: অ-নির্ভরশীল প্রকারের সাথে, উপসংহারে কালো ভাবগুলি প্রাঙ্গনে কালো অভিব্যক্তি থেকে নির্মিত হয় যখন উপসংহারে লাল বর্ণ প্রকাশের মাধ্যমে উপসংহারে লাল বর্ণ প্রকাশ করা হয়। নির্ভরশীল প্রকারের সাথে উপমাটির লাল এবং কালো অংশ থেকে উপসংহারের কালো অংশগুলি তৈরি করে রঙগুলি মিশ্রিত করা যেতে পারে।


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

1
আমি আপনার উদাহরণটি সম্পর্কে পাগল নই, যেহেতু তালিকার দৈর্ঘ্য হ'ল এমন কিছু যা আপনি টাইপগুলিতে মুছতে পারেন এবং সাধারণ (আন-ইনডেক্সড) তালিকার বিষয়ে কথা বলার প্রোগ্রামগুলি পেতে পারেন get এটি লক্ষ্য করা কার্যকর হতে পারে যে এই ধরণের ক্ষয়ের পরেও এমন টাইপগুলি ভাল-টাইপ না হয়ে থাকে, উদাহরণস্বরূপ টাইপের একটি প্রোগ্রাম , যেখানে এবং । A r r 0 = n a t A r r ( n + 1 ) = nArr nArr 0=natArr (n+1)=natArr n
কোডি

@ কোডি আমি নিশ্চিত না আপনি কী বোঝাতে চাইছেন। নির্ভরশীল ধরনের নিম্নলিখিত অর্থে টাইপ ইরেজিওর (অথবা আছে সেট আপ করা যেতে পারে) থাকতে: সব typeable পি জন্য: iff , যেখানে হয় রান-টাইম হ্রাস সম্পর্ক । (এটি একটি সরল বর্ণন যেখানে ফাংশনটি টিকা টান দিয়ে মেনু প্রোগ্রামগুলিকে 'টোটাল' একই রকম প্রোগ্রামগুলিতে টিকা ছাড়াই মুছে দেয়)) সম্ভবত আপনি অন্যরকম কিছু বোঝাতে চাইছেন? e r a s e ( P ) e r a sPVerase(P)erase(V)
মার্টিন বার্গার

@ মার্টিনবার্গার: হ্যাঁ এই ক্ষেত্রে আমি সহজ প্রকারের জন্য নির্ভরশীল ধরণের নির্ভরতা মুছে ফেলার কথা বলছি। আমি এখনই কেবলমাত্র যে উদাহরণটি তা হ'ল যদি প্রমাণ হয় যে ome যদি iff স্বাভাবিক করে (যেমন বারেন্ড্রেগের বই )। C o CFωCoC
কোডি

@ কোডি আমি মনে করি এই ধরণের ক্ষয়টি কল করা অস্বাভাবিক। এর চেয়ে ভাল নাম কী? সরলীকরণ টাইপ করতে পারে?
মার্টিন বার্গার

2

প্রকারের ঘোষণাকে জোর দেওয়া ছাড়া আর কিছুই ভাবেন না। বর্তমানে, আপনি যা বলতে পারেন তা হ'ল আইট ইন্ট 32 (), ইসচরপ্রিটার (), ইত্যাদি These এই বিভিন্ন যুক্তিগুলি সংকলন-সময় সংযোজনযোগ্য হিসাবে বেছে নেওয়া হয়। তবে এই ধারণাটি প্রসারিত হতে পারে যেমন: isCharPtr () && isNotNull ()। নলাবল পয়েন্টার একটি বিশাল সমস্যা। পয়েন্টারগুলি ডিফল্ট স্ট্যান্স হিসাবে নমনীয় হওয়া উচিত নয়, নাল পয়েন্টার এমন একটি প্রকার যা এটি নাল বা না তা জেনেও প্রবণতাযোগ্য নয়। অনুরূপ সমস্যাগুলি হ'ল: isPositiveInteger (), বা isEnN NaturalNumber ()।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.