এসএমএল এবং বিভাগ তত্ত্বের ফান্ট্যাক্টগুলির মধ্যে কী সম্পর্ক?


24

এই উত্তরে আন্ড্রেজ বাউয়ারের এই বিবৃতি হিসাবে একই চিন্তাভাবনা বরাবর

হাস্কেল সম্প্রদায় বিভাগের তত্ত্ব দ্বারা অনুপ্রাণিত হয়ে অনেকগুলি কৌশল তৈরি করেছে, যার মধ্যে মনাদ সর্বাধিক পরিচিত তবে মনদেসে বিভ্রান্ত হওয়া উচিত নয় ।

মধ্যে সম্পর্ক কি functors SML এবং functors শ্রেণী তত্ত্ব?

যেহেতু আমি অন্যান্য ভাষা যেমন হাস্কেল বা ওসিএএমএল এর ফান্টারের বিবরণ সম্পর্কে জানি না, যদি মানটির কোনও তথ্য থাকে তবে দয়া করে অন্যান্য ভাষার জন্য বিভাগগুলিও যুক্ত করুন।


1
আমি মনে করি আপনি একটি নির্দিষ্ট উত্তরের জন্য ডেভ ম্যাককুইনকে ইমেল করার চেষ্টা করতে পারেন ।
গিলস 'অশুভ হওয়া বন্ধ করুন'

উত্তর:


14

বিভাগগুলি একটি (বৃহত্তর) বিভাগ গঠন করে যার বস্তুগুলি (ছোট) বিভাগ এবং যার আকারগুলি ছোট বিভাগগুলির মধ্যে ফান্টেক্টর। এই অর্থে বিভাগের তত্ত্বের ফান্টেক্টরগুলি হ'ল "উচ্চতর আকারের মরফিজম"।

এমএল ফান্টেক্টর শব্দের শ্রেণিবদ্ধ অর্থে ফান্টেক্টর নয়। তবে এগুলি টাইপ-তাত্ত্বিক অর্থে "উচ্চতর আকারের ফাংশন"।

একটি সাধারণ প্রোগ্রামিং ভাষায় কংক্রিটের ডেটাটাইপগুলি "ছোট" হিসাবে ভাবেন। সুতরাং int, bool, int -> int, ইত্যাদি ছোট জাভা ক্লাস, ছোট যেমন সি ভাল structs মধ্যে আমরা নামক একটি বিশাল সংগ্রহের সব datatypes সংগ্রহ করতে পারে Type। যেমন এক ধরন কন্সট্রাকটর, listবা arrayথেকে একটি ফাংশন Typeথেকে Type। সুতরাং এটি একটি "বৃহত" ফাংশন। একটি এমএল ফান্টর একটি সামান্য জটিল জটিল ফাংশন: এটি একটি যুক্তি হিসাবে বিভিন্ন ছোট জিনিস গ্রহণ করে এবং এটি বেশ কয়েকটি ছোট জিনিস ফেরত দেয়। "বেশ কয়েকটি ছোট জিনিস একসাথে রাখা" এমএলে কাঠামো হিসাবে পরিচিত । মার্টিন-লফ টাইপ তত্ত্বের ক্ষেত্রে আমাদের কাছে একটি ছোট মহাবিশ্ব Type রয়েছে have বড় ধরনের সাধারণত প্রকার বলা হয় । তাহলে আমাদের আছে:

  1. মানগুলি হ'ল ধরণের উপাদান (উদাহরণ 42 : int:)
  2. প্রকারগুলি এর উপাদান Type(উদাহরণ int : Type:)
  3. এমএল স্বাক্ষরগুলি ধরণের (উদাহরণ OrderedType:)
  4. প্রকার নির্মাতারা হ'ল ধরণের উপাদান (উদাহরণ list : Type -> Type:)
  5. এমএল স্টাকচারগুলি ধরণের উপাদান (উদাহরণ String : OrderedType:)
  6. এমএল ফান্টেক্টর হ'ল ধরণের মধ্যে ফাংশন (উদাহরণ Map.Make : Map.OrderedType -> Make.S:)

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

  1. ডেটাটাইপগুলি সেটগুলির মতো
  2. প্রকারগুলি সেট-তাত্ত্বিক ক্লাসগুলির মতো
  3. ফান্টেক্টরগুলি বর্গ আকারের ফাংশনের মতো

15

একটি স্ট্যান্ডার্ড এমএল কাঠামো বীজগণিতের অনুরূপ । এর স্বাক্ষরটি একই আকারের বীজগণিতগুলির একটি সম্পূর্ণ শ্রেণীর বর্ণনা করে ।

এফ:এমএনজিRপিএফ:একজনআরএন

এই ধারণাগুলির বেশিরভাগই ক্লারয়ার (ডিবিএলপি পৃষ্ঠায় রেফারেন্স সি 5 এবং সি 6।) ডেভিড ম্যাকউইন বারস্টল এবং স্যানেল্লার সাথে যৌথভাবে কাজ করছিলেন, এবং ঘনিষ্ঠভাবে পরিচিত ছিলেন, বুর্স্টল এবং গোগুয়েন বেশ কয়েকটি সিরিজের কাগজপত্র লিখেছিলেন। সমস্যাগুলি সহ স্ট্যান্ডার্ড এমএল মডিউল সিস্টেমটি এই ধারণাগুলির উপর ভিত্তি করে।

বেশিরভাগ লোকেরা যা ভাববে তা হ'ল, মরফিজমের কী? বিভাগীয় তাত্ত্বিক ফান্ট্যাক্টারের একটি অবজেক্ট অংশ এবং একটি মরফিজম অংশ রয়েছে। স্ট্যান্ডার্ড এমএল ফান্টেক্টরগুলির কি একই রকম রয়েছে? উত্তরটি হ্যা এবং না.

  • স্ট্রাকচারগুলি প্রথম-ক্রম থাকলে উত্তরের হ্যাঁ অংশটি প্রযোজ্য। তারপরে, একই স্বাক্ষরের বিভিন্ন কাঠামোর মধ্যে সমকামিতা রয়েছে এবং স্ট্যান্ডার্ড এমএল ফান্টরসগুলি এগুলি স্বয়ংক্রিয়ভাবে ফলাফল স্বাক্ষরের হোমোর্ফিজমে ম্যাপ করে।
  • কাঠামোগুলিতে উচ্চ-অর্ডার ক্রিয়াকলাপ থাকলে উত্তরের NO অংশ প্রযোজ্য।

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


"বিভাগের তত্ত্ব উচ্চতর অর্ডার ফাংশনগুলি কীভাবে মোকাবেলা করতে পারে তা এখনও জানে না।" এটি আর একটি প্রশ্নের মতো মনে হচ্ছে কারণ আমি ভেবেছিলাম বিভাগের তত্ত্বটি ভিত্তি হিসাবে এটি সবই করতে পারে।
গাই কোডার

2
টি(এক্স)=[এক্সএক্স]টিWআমিএক্স=টি(এক্স)টি(এক্স)
উদয় রেড্ডি

আমি আসলে এটি একটি বাস্তব প্রশ্ন তৈরি ।
গাই কোডার

"একটি স্ট্যান্ডার্ড এমএল কাঠামো বীজগণিতের অনুরূপ "। ফান্টেক্টার কি তার চেয়ে কিছুটা সাধারণ না? কোনও সম্পর্কই কোনও কাঠামোকে সম্পর্কিত নয় এমন অবজেক্টগুলি (ধরণ, মান এবং ফাংশন), যেমন contain বীজগণিত গঠন না।
didierc

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

3

আমার জ্ঞানের সর্বোপরি , বিভাগ তত্ত্বের ফান্ট্যাক্টর এবং এমএল (এসএমএল বা ওক্যামল এর মধ্যে ফান্টেক্টরের মধ্যে কোনও আনুষ্ঠানিক সম্পর্ক নেই , তারা আমাদের উদ্দেশ্যটির জন্য এখানে যথেষ্ট নিকটবর্তী)।

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

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


2
ফ্যাক্টরগুলি কেবলমাত্র বস্তুগুলিতে ফাংশন নয়, তারা আকারগুলিও ম্যাপ করে। ফ্যাক্টরগুলি "বিভাগগুলির মধ্যে রূপচর্চা"।
আন্দ্রেজ বাউয়ার

@ আন্দ্রেজবাউর হ্যাঁ, ফান্ট্যাক্টরগুলি বস্তুগুলির উপর ফাংশন। বস্তুর প্রতিটি ফাংশন ফান্টেক্টর নয়, তবে এটি এখানে একটি গৌণ বিবেচনা।
গিলস 'অশুভ হওয়া বন্ধ করুন'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.