ক্যানোনিকাল ফাংশন সহ প্রোগ্রামিং ল্যাঙ্গুয়েজ


29

এমন কোন (কার্যকরী?) প্রোগ্রামিং ভাষা রয়েছে যেখানে সমস্ত ফাংশনগুলির একটি প্রচলিত ফর্ম রয়েছে? এটি হ'ল যে কোনও দুটি ফাংশন যা সমস্ত সেট ইনপুটগুলির জন্য একই মানগুলি প্রত্যাবর্তন করে একই উপায়ে উপস্থাপন করা হয়, যেমন f (x) x + 1 এবং g (x) x + 2 ফিরে আসে তবে f (f (x) )) এবং জি (এক্স) প্রোগ্রামটি সংকলন করার সময় অবিচ্ছেদ্য এক্সিকিউটেবলগুলি তৈরি করে।

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

আমার পটভূমিটি বরং সীমাবদ্ধ, সুতরাং আমি কম পূর্বশর্তগুলির সাথে উত্সগুলিকে পছন্দ করব তবে আরও উন্নত উত্সের উল্লেখগুলি খুব শীতল হতে পারে, কারণ আমি জানি যে আমি কী দিকে কাজ করতে চাই।

উত্তর:


38

যে পরিমাণে এটি সম্ভব তা আসলে ল্যাম্বদা ক্যালকুলাসের তত্ত্বের একটি বড় উন্মুক্ত প্রশ্ন। যা জানা আছে তার একটি দ্রুত সংক্ষিপ্তসার এখানে:

  • ইউনিট, পণ্য এবং ফাংশন স্পেস সহ সহজ-টাইপযুক্ত ল্যাম্বডা ক্যালকুলাসের একটি সাধারণ ক্যানোনিকাল ফর্ম সম্পত্তি রয়েছে। দুটি শর্ত সমান এবং যদি তাদের ক্ষেত্রে একই বিটা-স্বাভাবিক, এবং দীর্ঘ ফর্ম থাকে। এই সাধারণ ফর্মগুলি গণনা করাও বেশ সোজা is

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

  • প্রাকৃতিক সংখ্যার মতো আনবাউন্ডেড প্রকারের সংযোজন সমস্যাটিকে অনস্বীকার্য করে তোলে। মূলত, আপনি এখন হিলবার্টের দশম সমস্যাটি এনকোড করতে পারেন।

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


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

কেবল ইউনিট, পণ্য এবং ফাংশন সহ, আপনি সম্ভবত লিখতে পারেন এমন কোনওরকমের কার্ডিনালিটিটি 1, আপনি যদি যোগফল যোগ করেন তবে হঠাৎ করেই আপনি বিভিন্ন রকমের কার্ডিনালিটিগুলি পেয়ে যান (এবং "দরকারী গণনা" করতে পারেন)। এই বিষয়গুলি কি সম্পর্কিত?
গ্লেভোরল

1
@ গ্লেয়েভোরল: আমি সবসময় তথ্য সম্পর্কিত নয় তা বলতে নারাজ , তবে এই ক্ষেত্রে আমি সুস্পষ্ট সংযোগ দেখতে পাচ্ছি না। আমি উল্লিখিত বেশিরভাগ ফলাফলগুলি যদি আপনি ভাষার কোনও বেস টাইপ যোগ করেন (কোনও অন্তঃসংশ্লিষ্ট বা অ্যালিম্প-ফর্মগুলি না দিয়ে) তবে (ক) যে নোটের সত্যতাটি আপনি নোট করেছেন তা ভঙ্গ করবে, যেহেতু এবং বিভিন্ন সাধারণ ফর্ম, তবে (খ) আমার জানা অ্যালগরিদমগুলির কোনওটিকেই প্রভাবিত করে না। λ এক্স : বি λ y : bλ x : λ y : λx:b.λy:b.xλx:b.λy:b.y
নীল কৃষ্ণস্বামী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.