গণনার অভিব্যক্তি কি মোনাদের মতো?


22

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

সব লিখে রেখে, এখানে আমার প্রশ্ন (দুটি প্রশ্ন আসলে):

প্রতিটি এফ # গণনার অভিব্যক্তি কি এক মোনাদ? প্রতিটি মোনাডকে কি এফ # গণনার অভিব্যক্তি দিয়ে প্রকাশ করা যেতে পারে?

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


@ রাফেল আমি জিজ্ঞাসা করতে পারি ল্যাং ট্যাগ সরানোর কারণ কী?
গ্রজেগোর্জ সাওকিকি

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

1
@ রাফেল আমি বিশ্বাস করি প্রশ্নটি সত্যই সীমান্তের একটি মামলা। কেউ এটিকে এখানে স্থানান্তরিত করার সিদ্ধান্ত নিয়েছে তবে মনে হচ্ছে এটি এখানে কিছুটা সামান্য বিষয়ও। প্রশ্নটি নিজে থেকেই কম্পিউটারের ধরণের, তবে একই সময়ে উত্তর এবং প্রশ্ন উভয়ই বিশেষত চ # এর সাথে সম্পর্কিত। আমি আপনার থাম্ব নিয়ম বুঝতে পেরেছি, স্পষ্ট করার জন্য আপনাকে ধন্যবাদ।
গ্রজেগোর্জ সাওকিকি

উত্তর:


22

প্রথমত, গণনা এক্সপ্রেশন একটি ভাষার বৈশিষ্ট্য, যখন মনাদগুলি গাণিতিক বিমূর্তি হয়, সুতরাং এই দৃষ্টিকোণ থেকে, তারা সম্পূর্ণ আলাদা জিনিস

তবে এটি খুব কার্যকর উত্তর হবে না :-)। গণনা এক্সপ্রেশন একটি ভাষা বৈশিষ্ট্য যা আপনাকে এমন একটি সিনট্যাক্স দেয় যা মোনাদিক স্ট্রাকচারযুক্ত গণনা (বা ডেটা টাইপ) সহ প্রোগ্রামিংয়ের জন্য ব্যবহার করা যেতে পারে তবে এগুলি অন্যান্য কাঠামোর সাথেও ব্যবহার করা যেতে পারে। আপনি আরও তথ্যের জন্য আমার F # গণনা এক্সপ্রেশন চিড়িয়াখানা কাগজটি পড়তে পারেন , তবে গণনার এক্সপ্রেশনগুলি এর সাথে ব্যবহার করা যেতে পারে:

  • মোনাডস, তবে অ্যাডিটিভ মনডস (হাসেলাররা যা ডাকে MonadPlusবা MonadOr)
  • রচিত গণনা (হাস্কেলাররা মোনাড ট্রান্সফর্মার যাকে বলে)
  • গণনাগুলি মোনাডিক তবে ব্যতিক্রম হ্যান্ডলিংয়ের মতো অন্যান্য এফ # কনস্ট্রাক্টকে সমর্থন করে
  • মনোয়েডস (এবং একাক্রান্ত বাইন্ড ছাড়া কয়েক প্রকারের পরিবর্তন)
  • প্রয়োগমূলক ফান্টেক্টর (যদিও এটি কেবল গবেষণা এক্সটেনশনে প্রয়োগ করা হয়)

সুতরাং, গণনার এক্সপ্রেশন অবশ্যই মনডের সাথে নিবিড়ভাবে লিঙ্কযুক্ত, তবে তারা তাদের সাথে যা ঘনিষ্ঠভাবে লিঙ্কযুক্ত নয়। এটি doহাস্যেলের স্বীকৃতির সাথে বিপরীত , যা মনাদের সাথে অনেক বেশি ঘনিষ্ঠভাবে জড়িত (যদিও এটি গণিতের সাথে কঠোরভাবে গণিত হয় না এমন গণনাগুলির সাথেও ব্যবহার করা যেতে পারে)।


3
মোনাড ট্রান্সফর্মারগুলি একটি মোনাডকে অন্য মনাদে রূপান্তর করার একটি সাধারণ উপায় - এফ # গণনার এক্সপ্রেশনগুলি কেবল সত্যই পরিবর্তনের পরিবর্তে সেই রূপান্তরটির / ফলাফল / বাস্তবায়নের পক্ষে সমর্থন করে।
জিএস -

1
@ গণেশসিট্টাম্পলম - হ্যাঁ, আপনি ঠিক বলেছেন। সরল করার জন্য আমার চেষ্টাটি এখানে কার্যকর ছিল না :-)। গণনা এক্সপ্রেশন আপনাকে একটি গণনা দিয়ে কাজ করার জন্য একটি সিনট্যাক্স দিতে পারে যা একটি মোনাড ট্রান্সফর্মার প্রয়োগের ফলাফল (অন্তর্নিহিত মনাদ এবং রচিত
মোনাডের

5

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


1
আপনার লিঙ্কিত পৃষ্ঠাগুলিতে অন্তত সামগ্রীর সংক্ষিপ্তসার করে আপনার উত্তরটিকে আরও স্ব-অন্তর্ভুক্ত করুন। যদি দুটি লিঙ্ক কাজ করা বন্ধ করে দেয় তবে আপনার বর্তমান উত্তর সম্পূর্ণ অর্থহীন হবে।
ডেভিড রিচার্বি

2
আমি নিশ্চিত না আপনি কী বিষয়ে কথা বলছেন। আমি স্পষ্টভাবে প্রশ্নগুলির উত্তর দিয়েছি এবং তারপরে যদি প্রশ্নকারী আগ্রহী তবে আরও তথ্যের লিঙ্কগুলি দিয়েছি। প্রশ্নের উত্তর দেওয়ার জন্য লিঙ্কগুলির প্রয়োজন নেই।
N_A

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