আগদা এবং ইদ্রিসের মধ্যে পার্থক্য


164

আমি নির্ভরশীল-টাইপড প্রোগ্রামিংয়ে ডুবতে শুরু করেছি এবং দেখতে পেয়েছি যে আগদা এবং ইদ্রিস ভাষা হাস্কেলের নিকটতম, তাই আমি সেখানেই শুরু করেছি।

আমার প্রশ্নটি: তাদের মধ্যে প্রধান পার্থক্যগুলি কোনটি? উভয় ক্ষেত্রেই কি টাইপ সিস্টেমগুলি সমানভাবে এক্সপ্রেসিভ হয়? সুবিধাগুলি সম্পর্কে একটি বিস্তৃত তুলনামূলক এবং আলোচনা করা দুর্দান্ত হবে।

আমি কিছু স্পট করতে সক্ষম হয়েছি:

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

সম্পাদনা করুন : এই প্রশ্নের রেডডিট পৃষ্ঠায় আরও কিছু উত্তর রয়েছে: http://www.reddit.com/r/d dependent_tyype/comments/q8n2q/agda_vs_idris /


1
আপনি সম্ভবত

4
রেকর্ডের জন্য: আজদা আজকাল একাকী এবং প্রয়োগমূলক স্বরলিপিগুলিও রয়েছে।
গ্যালাইস

উত্তর:


189

এর উত্তর দেওয়ার জন্য আমি সেরা ব্যক্তি নাও হতে পারি, কারণ ইদ্রিসকে বাস্তবায়ন করায় আমি সম্ভবত কিছুটা পক্ষপাতদুষ্ট! এফএকিউ - http://docs.idris-lang.org/en/latest/faq/faq.html - এর কিছু বলার আছে তবে কিছুটা প্রসারিত করার জন্য:

ইড্রিসকে উপপাদ্য প্রমাণ করার আগে সাধারণ উদ্দেশ্যে প্রোগ্রামিং সমর্থন করার জন্য তৈরি করা হয়েছে এবং এর মতো উচ্চ স্তরের বৈশিষ্ট্য যেমন টাইপ ক্লাস, নোটেশন, আইডিয়াম ব্র্যাকেট, তালিকার বোঝাপড়া, ওভারলোডিং ইত্যাদি has ইদ্রিস ইন্টারেক্টিভ প্রুফের তুলনায় উচ্চ স্তরের প্রোগ্রামিং রাখে, যদিও ইদ্রিস একটি কৌশল-ভিত্তিক বিস্তৃত উপর নির্মিত হয়েছে, একটি কৌশল ভিত্তিক ইন্টারেক্টিভ উপপাদ্য প্রবাদটির (একটি কোকের মতো কিছুটা হলেও উন্নত নয়, কমপক্ষে এখনও নেই) একটি ইন্টারফেস রয়েছে।

ইদ্রিস আরও ভালভাবে সমর্থন করতে চাইছেন এটি এম্বেডড ডিএসএল বাস্তবায়ন। হাস্কেলের সাহায্যে আপনি স্বরলিপিটি দিয়ে একটি দীর্ঘ পথ পেতে পারেন, এবং আপনি ইদ্রিসের সাথেও করতে পারেন, তবে আপনার প্রয়োজনের সাথে আপনি অন্যান্য নির্মাণ যেমন অ্যাপ্লিকেশন এবং ভেরিয়েবল বাইন্ডিং পুনর্নির্মাণ করতে পারেন। আপনি টিউটোরিয়ালে এই বিষয়ে আরও বিশদ বা এই কাগজটিতে সম্পূর্ণ বিবরণ পেতে পারেন: http://eb.host.cs.st-andrews.ac.uk/drafts/dsl-idris.pdf

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

আগদা এবং ইদ্রিসের টাইপ সিস্টেমগুলি অনেকগুলি গুরুত্বপূর্ণ ক্ষেত্রে একই রকম। আমি মনে করি মূল পার্থক্যটি মহাবিশ্বকে পরিচালনা করা। Agda মহাবিশ্ব পলিমরফিজম আছে, ইদ্রিস হয়েছে cumulativity (এবং আপনি থাকতে পারে Set : Setউভয় আপনি এই খুব নিয়ন্ত্রণমূলক খুঁজে পেতে এবং কিছু মনে না করেন যে আপনার প্রমাণাদি ক্রটিপূর্ণ হতে পারে থাকেন)।


48
আপনার অর্থ কী, "... উত্তর দেওয়ার জন্য সেরা ব্যক্তি নন ..."? আপনি উত্তর দেওয়ার জন্য সেরা একজন, আপনি ইদ্রিসকে ঘনিষ্ঠভাবে জানেন বলে। এখন আমাদের কেবল উত্তর দেওয়ার জন্য এনএডি দরকার, এবং আমাদের পুরো ছবি আছে :) উত্তর দেওয়ার জন্য সময় দেওয়ার জন্য ধন্যবাদ।
অ্যালেক্স আর

9
এমন কোনও জায়গা আছে যেখানে আমি ক্রমবর্ধমানতা সম্পর্কে আরও পড়তে পারি? এর আগে আমি এর আগে কখনও শুনিনি ...
সেরাস


8
HoTT বইয়ের প্রথম অধ্যায়টি এটিকে মোটামুটিভাবে পরিষ্কারভাবে বর্ণনা করলে, যদি সংক্ষিপ্তভাবে বলা যায়।
ডেভিড

50

ইদ্রিস এবং আগদার মধ্যে অন্য একটি পার্থক্য হ'ল ইদ্রিসের প্রস্তাবিত সাম্যটি ভিন্নধর্মী, যখন আগদার সমজাতীয়।

অন্য কথায়, ইদ্রিসের সাম্যের দিকের সংজ্ঞাটি হ'ল:

data (=) : {a, b : Type} -> a -> b -> Type where
  refl : x = x

আগদায় থাকাকালীন, তা হয়

data _≡_ {l} {A : Set l} (x : A) : A → Set a where
    refl : x ≡ x

আগদার স্পেসিফিকেশনের এলটিকে উপেক্ষা করা যেতে পারে, কারণ এ্যাডউইন তাঁর উত্তরে উল্লেখ করেছেন মহাবিশ্বের বহুত্ববাদ নিয়ে এটি করা উচিত।

গুরুত্বপূর্ণ পার্থক্যটি হ'ল আগদা তে সমতা প্রকারটি যুক্তি হিসাবে A এর দুটি উপাদান গ্রহণ করে, যখন ইদ্রিসে এটি সম্ভাব্য ভিন্নতার সাথে দুটি মান নিতে পারে প্রকারের ।

অন্য কথায়, ইদ্রিসে যে কেউ দাবি করতে পারে যে বিভিন্ন ধরণের দুটি জিনিস সমান (এমনকি যদি এটি অপ্রতিরোধ্য দাবি হিসাবে শেষ হয়), যখন আগদায়, খুব বিবৃতি বাজে কথা।

টাইপ তত্ত্বের জন্য এটির গুরুত্বপূর্ণ এবং বিস্তৃত পরিণতি রয়েছে, বিশেষত হোমোপি টাইপ তত্ত্বের সাথে কাজ করার সম্ভাব্যতা সম্পর্কে। এর জন্য, ভিন্ন ভিন্ন সমতা কেবল কাজ করবে না কারণ এটির জন্য একটি অ্যাক্সিয়াম প্রয়োজন যা HoTT এর সাথে সঙ্গতিপূর্ণ নয়। অন্যদিকে, বৈকল্পিক সমতা সহ দরকারী উপপাদ্যগুলি বলা সম্ভব যা এককভাবে সমতা দিয়ে সরলভাবে বলা যায় না।

সম্ভবত সবচেয়ে সহজ উদাহরণ হ'ল ভেক্টর জমাটবদ্ধতার সাহচর্য। প্রদত্ত দৈর্ঘ্য-সূচকযুক্ত তালিকা ভেক্টরকে এভাবে সংজ্ঞায়িত করা হয়:

data Vect : Nat -> Type -> Type where
  Nil : Vect 0 a
  (::) : a -> Vect n a -> Vect (S n) a 

এবং নিম্নলিখিত ধরণের সাথে সংক্ষেপণ:

(++) : Vect n a -> Vect m a -> Vect (n + m) a

আমরা এটি প্রমাণ করতে চাই:

concatAssoc : (xs : Vect n a) -> (ys : Vect m a) -> (zs : Vect o a) ->
              xs ++ (ys ++ zs) = (xs ++ ys) ++ zs

এই বিবৃতিটি সমজাতীয় সাম্যের অধীনে বাজে কথা, কারণ সাম্যতার বাম দিকটি টাইপ করে Vect (n + (m + o)) aএবং ডানদিকে টাইপ থাকে Vect ((n + m) + o) a। এটি ভিন্ন ভিন্ন সমতার সাথে একটি পুরোপুরি বুদ্ধিমান বক্তব্য।


26
আপনি আগদার স্ট্যান্ডার্ড লাইব্রেরিতে আগদার অন্তর্নিহিত তত্ত্বের চেয়ে বেশি মন্তব্য করছেন বলে মনে হয়, তবে এমনকি স্ট্যান্ডার্ড লাইব্রেরিতে একজাতীয় এবং ভিন্ন ভিন্ন সমতা ( cse.chalmers.se/~nad/listings/lib/… ) উভয়ই রয়েছে । লোকেরা কেবল যেখানে সম্ভব সেখানে প্রায়শই প্রায়শই ব্যবহার করতে থাকে। পরেরটি একটি বিবৃতি সমতুল্য যে মানগুলি সম্পর্কে টাইপগুলি সমান হয়। এমন এক বিশ্বে যেখানে টাইপ সাম্যতাটি অদ্ভুত (HoTT) হয় তবে হেটেক একটি অলৌকিক বিবৃতি।
রহস্যময় ড্যান

6
আমি বুঝতে পারছি না যে উক্তিটি সমজাতীয় সাম্যের অধীনে বাজে কথা। যতক্ষণ না আমি ভুল হয়ে থাকি (n + (m + o))এবং বিচারিকভাবে অন ((n + m) + o)এর সাহচর্যতার সাথে সমান হয় না (অন্তর্ভুক্তির নীতি থেকে প্রাপ্ত)। সেই অনুসারে সাম্যের প্রতিটি পক্ষের একই ধরণের থাকে। সাম্যতার প্রকারের মধ্যে পার্থক্য গুরুত্বপূর্ণ, তবে এটি কীভাবে এটির উদাহরণ তা আমি দেখতে পাচ্ছি না। +

5
@ অভিষেক কি বিচারের সাম্যতা সংজ্ঞাগত সমতার সমান নয়? আমি মনে করি আপনি (এন + (এম + ও)) এবং ((এন + মি) + ও) বলতে পার্থক্যগতভাবে সমান কিন্তু সংজ্ঞায়িত / বিচারিকভাবে সমান নয়।
টম ক্রকেট

3
ঠিক আছে। আমি যখন বিচারিক সাম্যকে বলেছিলাম তখন আমি প্রস্তাবিত সাম্য বোঝাতে চাইছি। দুঃখিত। এখানে সংশোধিত মন্তব্যটি দেওয়া হয়েছে: (এন + (এম + ও)) এবং ((এন + এম) + ও) প্রস্তাবিতভাবে সমান তবে সংজ্ঞা অনুসারে সমান নয়। আপনার যদি A: A, a: B থাকে তবে কেবল A এবং B সংজ্ঞা অনুসারে সমান প্রকারের। টাইপচেকিংয়ের ডিসিডেবিলিটির জন্য, সংজ্ঞাগত সাম্যকে ডিকিসেবল হতে হয়। এক্সটেনশনাল টাইপ তত্ত্বগুলিতে সংজ্ঞাগত সমতা প্রবর্তনীয় সাম্যের সাথে মিলিত হয় এবং তাই টাইপচেকিং অনস্বীকার্য Co কোক-এ, সংজ্ঞাগত সাম্যতায় কেবল গণনা, আলফা সাম্যতা, সংজ্ঞামূলক উদ্দীপনা অন্তর্ভুক্ত থাকে।
অভিষেক আনন্দ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.