হাস্কেল ফাংশন রচনাটি পাইপ এবং ফিল্টার স্থাপত্য নিদর্শনগুলির উদাহরণ instance


9

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

আমার কাছে মনে হচ্ছে হাস্কেল ফাংশন কম্পোজিশন একই কাজ করছে। আমরা কী বলতে পারি যে এটি কেবল ফাংশন অর্ডারিংয়ের বিষয়ে এবং কোনও স্পষ্ট বাফার পাইপ হিসাবে ব্যবহার না করা সত্ত্বেও এটি এই প্যাটার্নটির একটি উদাহরণ? যদি হ্যাঁ, আমরা কি অলস ভাষার জন্য একই কথা বলতে পারি?

উত্তর:


8

এগুলি সংযুক্ত রয়েছে, তবে সংযোগটি অন্য ধরণের (সাজানোর) মতো।

একটি যথাযথ বিভাগে মরফিজম রচনাটি সঠিকভাবে উভয় ফাংশন রচনা মডেল করে (যেখানে বিভাগটি Setএকটি কঠোর ভাষার CPOজন্য এবং অলস ভাষার জন্য) এবং প্রক্রিয়া রচনা (যেখানে বিভাগটি (এএফএআইকে, নামবিহীন) বিভাগে যেখানে অবজেক্টগুলি স্ট্রিং, মোর্ফিজমগুলি শেল হয় প্রক্রিয়া, এবং রচনাটি পাইপ অপারেটর)। শেল প্রক্রিয়াগুলি সাধারণতা বা নির্ভুলতার কোনও ক্ষতি ছাড়াই দেখা যায়, যেমন (অলস) প্রকারের ফাংশন এবং প্রকারের String -> WriterT String IO Stringবিশুদ্ধ ফাংশনগুলি String -> Stringনিখরচায় এবং প্রকারের ফাংশনগুলিতে রূপান্তরিত করা যায় String -> Identity String, সুতরাং উভয়ই সত্যই (>>=)ছদ্মবেশে রয়েছে।


1
একটি CPOবিভাগ কি? আমার গুগল-ফু দুর্বল :(
অ্যান্ড্রেস এফ

3
@AndresF। বিষয়শ্রেণীতে Complete Partial Orders।
পাথারিয়ানের শিখা

2

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

আরও পড়া
ফাংশনাল প্রোগ্রামিংয়ের প্রসঙ্গে যৌগিকতা বলতে কী বোঝায়?


1
রচনাটি প্রথম শ্রেণির ফাংশনটির সাথে এতটা চুক্তি করে না যে রচনাটি নিজেই প্রথম শ্রেণির ফাংশন। উদাহরণস্বরূপ ফাংশনের রচনা নিন ++, যেখানে রচনা হয় ., ++ . ++একটি মান গ্রহণ করা এবং দুইবার বৃদ্ধি যে মান ফিরে আসবে, কিন্তু ++একটি প্রথম শ্রেণীর ফাংশন নয়, এটি শুধুমাত্র একটি মান এবং আয় একটি মান সময় লাগে। কম্পোজিশন ফাংশনটি প্রথম শ্রেণীর ফাংশন যা দুটি ফাংশন নেয় এবং একটি প্রদান করে।
জিমি হোফা

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

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