ডামিদের জন্য পুনরাবৃত্তি পরিকল্পনা?


83

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

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

এটি সম্ভবত তাদের নাম দ্বারা বাধা হয়ে দাঁড়িয়েছে। আমি মনে করি কিছু বিকল্প, কম গাণিতিক নাম রয়েছে (কলা এবং কাঁটাতারের সম্পর্কে কিছু?) তবে আমি যে পুনরাবৃত্তি স্কিমগুলি ব্যবহার করি তার জন্য ক্লুসিয়ার নামগুলি কী তা আমার কোনও ধারণা নেই।

আমি মনে করি এটি বাইনারি গাছের মতো বিমূর্ত ডেটা ধরণের পরিবর্তে ডেটাটাইপগুলির সাথে সাধারণ বাস্তব-বিশ্বের সমস্যার প্রতিনিধিত্ব করে উদাহরণগুলি ব্যবহার করতে সহায়তা করবে।


6
জেরেমি গিবনসের বেশ কয়েকটি কাগজপত্র রয়েছে যা সেগুলি পরিষ্কার এবং মূলত স্বতঃসংশ্লিষ্ট হওয়ায় এটি সর্বোত্তম ভূমিকা হতে পারে। "স্ট্রিমিং রিপ্রেজেন্টেটিভ চেঞ্জারস" (ভাঁজ এবং উদ্ঘাটিত মিলিত), "প্রোগ্রামের সমঝোতার জন্য বিভাজন" (প্যারোমার্ফিজম এবং আরও অনেক কিছু), "দ্য আন্ডার প্রশংসা করা আবদ্ধ" (অ্যানোমার্ফিজম)। সিএস.অক্স.এক.উক
স্টিফেন টেটলি

উত্তর:


44

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

তবে একটি খাঁটি অন্তর্দৃষ্টি অবস্থান থেকে, আপনি কাতা এবং আনা হ্রাস এবং উত্পাদন হিসাবে ভাবতে পারেন, এবং এটি সম্পর্কে এটি।

সম্পাদনা করুন: আরও কিছু

একটি রূপান্তর (গিবনস) হ'ল ইনো-আউট হাইলোর মতো - এটি একটি ভাঁজ এবং তার পরে একটি উদ্ঘাটিত হয়। সুতরাং আপনি এটি স্ট্রিম ছিন্ন করতে এবং সম্ভাব্য ভিন্ন কাঠামো সহ একটি নতুন তৈরি করতে ব্যবহার করতে পারেন।

Meকমেট সাহিত্যের বিভিন্ন স্কিমগুলিতে একটি দুর্দান্ত "ফিল্ড গাইড" পোস্ট করেছেন: http://comotad.com/reader/2009/recursion-schemes/

তবে, "স্বজ্ঞাত" ব্যাখ্যাগুলি সোজা হলেও লিঙ্কযুক্ত কোডটি কম, এবং এর মধ্যে কয়েকটিতে ব্লগ পোস্টগুলি জটিল / নিষেধকারী পক্ষের একটি বাচ্চা হতে পারে।

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


4
ঠিক আছে, ধন্যবাদ, তবে এটি কেবল তিনটি - অন্যরাও আছেন। আমি আশা করি যে কেউ কেউ এমন একটি উত্তর যুক্ত করবে যা অন্য কয়েকটি পুনরাবৃত্তি স্কিম সম্পর্কে।
রবিন সবুজ

4
অবশিষ্ট পুনরাবৃত্তি স্কিমগুলির মধ্যে বেশিরভাগ ধরণের অস্পষ্টতা রয়েছে, সম্ভবত প্যারামারফিজমগুলি ব্যতীত, যা আমরা প্রায়শই নির্ভরশীল ভাষাগুলিতে দেখতে পাই সেই প্রকারের জন্য "আনয়ন নীতিগুলির" সাথে খুব সুন্দরভাবে মিলিত হয়। এখানে সমস্ত বিভাগের তত্ত্বটি কীভাবে কাজ করে তা আমি খুব একটা বুঝতে পারি নি, তবে আমি সন্দেহ করি যে এটি খুব ভয়াবহভাবে ভেঙে যাবে :)
কোপ্পাম্পিন

4
প্যারামারফিজম ভাঁজের মতো তবে আপনি "বাকী ইনপুট" এ উঁকি দিতে পারেন। একটি ভাঁজ কেবল ট্র্যাভারসাল চলাকালীন প্রাথমিক অ্যাক্সেস দেয়।
স্টিফেন টেটলি

23

সর্বাধিক বিভাগ-তাত্ত্বিক থেকে কয়েকটি রেফারেন্স (তবে একটি "টেরিটরি ম্যাপ" দেওয়ার ক্ষেত্রে প্রাসঙ্গিক যা আপনাকে "প্রচুর লিঙ্কগুলি ক্লিক করতে" এড়াতে দেবে) আরও সহজ এবং আরও স্ব-অন্তর্ভুক্ত:

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

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

  • Morphisms বাছাই লেক্স Augustjein দ্বারা , বিভিন্ন ডাটা স্ট্রাকচার উপর আলগোরিদিম বাছাই ব্যবহারসমূহ পুনরাবৃত্তির স্কিম ব্যাখ্যা করার জন্য। এটিনির্মাণের দ্বারা" ডমিগুলির জন্য পুনরাবৃত্তি প্রকল্পগুলি " বেশ সুন্দর:

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

  • একটি প্রতীক-মুক্ত উপস্থাপনা উপার্জন আরেকটি পন্থা জেরেমি গিবনস 'অধ্যায়ে অরিগ্যামি প্রোগ্রামিং মধ্যে প্রোগ্রামিং নিয়ে মজা , আগের এক সঙ্গে কিছু ওভারল্যাপ সঙ্গে। এর গ্রন্থগ্রন্থটি বিষয়টির সাথে পরিচিতির একটি সফর দেয়।

    সম্পাদনা: জেরেমি গিবনস আমাকে কেবলমাত্র আমাকে জানতে দিন যে তিনি এই প্রশ্নটি পড়ার পরে বইয়ের ওয়েবপৃষ্ঠায় পুরো বইয়ের গ্রন্থপঞ্জিতে একটি লিঙ্ক যুক্ত করেছেন । উপভোগ করুন !

আমি ভীত এই শেষ দুটি রেফারেন্সগুলি কেবলমাত্র (কটা | আনা | হাইলো | প্যারা) মরফিজমের একটি দৃ explanation় ব্যাখ্যা দেয়, তবে আমার আশা এই যে বীজগণিতের আনুষ্ঠানিকতার মাধ্যমে এটি আপনাকে আরও স্বরলিপি-ভারী প্রকাশনাগুলিতে খুঁজে পেতে পারে this এই চারটি ব্যতীত (সহ) পুনরাবৃত্তি প্রকল্পগুলির কোনও কঠোরভাবে অ-বিভাগ-তাত্ত্বিক ব্যাখ্যা সম্পর্কে আমি জানি না।


16

টিম উইলিয়ামস গত রাতে লন্ডন হাস্কেল ইউজার গ্রুপে আপনার উল্লেখ করা প্রত্যেকটির উদাহরণস্বরূপ উদাহরণস্বরূপ পুনরাবৃত্তি প্রকল্পগুলি সম্পর্কে একটি উজ্জ্বল আলোচনা করেছিলেন। স্লাইডগুলি দেখুন:

http://www.timphilipwilliams.com/slides.html

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

এবং ভিডিওটি এখানে আপলোড করা হবে:

http://www.youtube.com/user/ লন্ডনহ্যাসেল

সম্পাদনা প্রশ্নে বেশিরভাগ লিঙ্কগুলি উপরের হুইটসাইকারের উত্তরে রয়েছে।

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