বীজগণিত ডেটার সাথে সীমাবদ্ধ ভিত্তিক প্রকারের অনুক্রম


11

আমি এমএল বংশবৃত্তের একটি অভিব্যক্তি ভিত্তিক ভাষা নিয়ে কাজ করছি, সুতরাং এটির স্বাভাবিকভাবে টাইপ অনুক্রমের প্রয়োজন> :)

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

আমার এখন পর্যন্ত যা আছে তা সহজেই কাজ করে; একটি অভিব্যক্তি যদি eহয় a + b, e : Int, a : Intএবং b : Int। যদি eম্যাচ হয়,

match n with
  | 0 -> 1
  | n' -> n' * fac(n - 1)`, 

আমি ন্যায়ত যে আবিষ্কার করতে পারেন t(e) = t(the whole match expression), t(n) = t(0) = t(n'), t(match) = t(1) = t(n' * fac(n - 1)ইত্যাদি ...

বীজগণিতের ডেটাটাইপগুলির ক্ষেত্রে আমি খুব অনিশ্চিত। ধরুন ফিল্টারের মতো কোনও ফাংশন:

let filter pred list =
  match list with
    | Empty -> Empty
    | Cons(e, ls') when pred e -> Cons (e, filter ls')
    | Cons(_, ls') -> filter 

তালিকার ধরণটি বহুমুখী থেকে যায়, কনসের ধরণের হওয়া দরকার a * a list -> a list। সুতরাং, এই সীমাবদ্ধতা প্রতিষ্ঠায় আমি স্পষ্টত আমার বীজগাণিতিক কনস্ট্রাকটর এই ধরনের সন্ধান করার প্রয়োজন - সমস্যা আমি এখন আছে বীজগাণিতিক কনস্ট্রাকটর একাধিক ব্যবহার সম্পর্কে 'প্রসঙ্গ-সংবেদনশীলতা' হল - কিভাবে আমি আমার বাধ্যতা সমীকরণ প্রকাশ করেন যে aএ প্রতিটি ক্ষেত্রে একই হওয়া দরকার?

এর সাধারণ সমাধান খুঁজতে আমার সমস্যা হচ্ছে এবং আমি এ বিষয়ে তেমন সাহিত্য খুঁজে পাচ্ছি না। যখনই আমি অনুরূপ কিছু খুঁজে পাই - বাধা-ভিত্তিক ধরণের অনুমিতি সহ অভিব্যক্তিভিত্তিক ভাষা - এগুলি বীজগণিতের ডেটাটাইপগুলি এবং পলিমারফিজমের সংক্ষিপ্ততা বন্ধ করে দেয়।

কোন ইনপুট অনেক প্রশংসা করা হয়!


@ গুয় আমি কৃতজ্ঞতা প্রকাশের অর্থ বোঝাতে চাই নি, তবে আমি কোনও অফ-শেল্ফ সমাধান খুঁজছি না - আপনার কি কোনও পরামর্শ আছে? আমি যে বেশিরভাগ বিদ্যমান ডকগুলি খুঁজে পেতে পারি (যেমন এমএল, ওসিএএমএল-এর ইনরিয়া কাগজপত্রগুলি ...) আমার যা প্রয়োজন তার চেয়ে অনেক বেশি বিস্তৃত (এবং বুঝতে সক্ষম)।
ক্রিস

আমি এটিটিএপিএল- এর অনুমানের অধ্যায়টি দিয়ে শুরু করব , আমার ধারণা তারা অ্যাক্সেসযোগ্য স্তরে আপনার প্রয়োজনীয় সমস্ত কিছু নিয়ে আলোচনা করে।
গিলস 'এ-অশুভ হওয়া বন্ধ করুন'

@ গিলিস আমার মনে হয় এটিএমএইপিএল হ'ল একমাত্র 'ক্লাসিক' পিএল বই আমার বুকসেলফটিতে নেই: পি তবে ধন্যবাদ, আমি সোমবার দেখে নেব, আমি ইউনিতে একটি ফ্লোরে বসে থাকতে পারি, সম্ভবত অফিসগুলিতে 10 টি কপি বিতরণ করা হয়েছে: )
ক্রিস

@ ক্রিস আপনি কি কখনও এই সমস্যা মোকাবেলা করার একটি অ্যাক্সেসযোগ্য সংস্থান খুঁজে পেয়েছেন? আমার একটি "মিনি এমএল" বাস্তবায়ন ঠিক এই সমস্যার উপরেই আটকে আছে ... আমি মনে করি এটিটিএপিএল ( pauillac.inria.fr/~fpottier/publis/emlti-final.pdf ) থেকে প্রাসঙ্গিক অধ্যায়টি পেয়েছি এবং বীজগণিতের উপরের অংশটি স্কিমড করেছি ডেটা ধরণের, তবে আমি ভয় করি যে এটি আমার মাথা থেকে খানিকটা উপরে।
মিচিয়াকিগ

হ্যাঁ, স্পেসম্যানাকী হ্যাঁ, আমি ঠিক এর জন্য একটি দুর্দান্ত উত্স হিসাবে pdfs.semanticscholar.org/8983/… খুঁজে পেয়েছি
ক্রিস

উত্তর:


2

দেখুন: মিনি এমএল বিশেষত টাইপ অনুমান বিভাগ।

এটিতে সাধারণ ক্রিয়ামূলক ভাষার সম্পূর্ণ পার্সারের জন্য F # তে নমুনা কোড রয়েছে। আরও গুরুত্বপূর্ণভাবে টাইপ ইনফারেন্স বিভাগটি হিন্দি-মিলনার অ্যালগরিদম প্রয়োগ করে যা বেশিরভাগ টাইপ অনুমান ব্যবস্থায় পাওয়া যায়। লেখক হিন্ডলি-মিলনার বোঝার জন্য আরও দুটি গুরুত্বপূর্ণ নথির লিঙ্ক সরবরাহ করেছেন; একটি হ'ল এক ধরণের উচ্চ স্তরের ভূমিকা এবং অন্যটি একটি কাগজ যা কোডে অ্যালগরিদমের বাস্তবায়ন বর্ণনা করে।


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