এই দুটি ধারণার দিকে তাকানোর একটি উপায় বলা যায় যে প্যাটার্ন মিলটি কনট্রাক্টর এবং ডেস্ট্রাকচারিং শর্তগুলির সাথে বৈষম্যের সংমিশ্রণের জন্য প্রোগ্রামিং ভাষার একটি বৈশিষ্ট্য (একই সময়ে স্থানীয়ভাবে টুকরা টুকরা বাছাই এবং স্থানীয়ভাবে নামকরণের সময়) সুরক্ষিতভাবে, নিখুঁতভাবে এবং দক্ষতার সাথে। প্যাটার্ন ম্যাচিংয়ের গবেষণা সাধারণত বাস্তবায়নের দক্ষতার উপর আলোকপাত করে, যেমন ম্যাচের পদ্ধতিটি কী কী তুলনা করে তা তুলনামূলকভাবে কমিয়ে আনা যায়।
বিপরীতে, টার্ম রাইটিং হ'ল গণনার একটি সাধারণ মডেল যা সিন্থেটিক এক্সপ্রেশনগুলির সাবটার্মগুলি প্রতিস্থাপনের বিস্তৃত পদ্ধতিগুলির (সম্ভাব্যভাবে অ-সংজ্ঞাশীল) তদন্ত করে (আরও স্পষ্টভাবে কিছু শর্তের সাথে ভেরিয়েবলগুলির একটি সেটের উপরে একটি শব্দ-বীজগণিতের একটি উপাদান) অনুসন্ধান করে। টার্ম রাইটিং সিস্টেমগুলি সম্পর্কে গবেষণা সাধারণত সংকলন, নির্ধারণকরণ এবং সমাপ্তির মতো পুনর্লিখনের সিস্টেমগুলির বিমূর্ত বৈশিষ্ট্য সম্পর্কে এবং বিশেষত এই জাতীয় বৈশিষ্ট্যগুলি কীভাবে পুনর্লিখনের সিস্টেমে বীজগণিতীয় ক্রিয়াকলাপ দ্বারা সংরক্ষণ করা হয় না সে সম্পর্কে, অর্থাৎ এই বৈশিষ্ট্যগুলি কতটা গঠনগত।
স্পষ্টতই উভয়ের মধ্যে ধারণাগত ওভারল্যাপ রয়েছে এবং পার্থক্যটি প্রযুক্তিগত চেয়ে ডিগ্রি ডিগ্রি পর্যন্ত। একটি প্রযুক্তিগত পার্থক্য হল যে শব্দটি rewriting (অর্থাত একটি নিয়ম নির্বিচারে প্রেক্ষিতে অধীনে এরকম সংঘটিত নতুন করে লেখা হয় সি [ ঠ σ ] → সি [ R σ ] নির্বিচারে প্রেক্ষিতে জন্য সি [ । ] এবং বদল σ( এল , আর )সি[ ঠ σ] → সি[ R σ]সি[ । ]σ), যখন হাস্কেল, ওক্যামেল বা স্কালার মতো আধুনিক ভাষাগুলিতে প্যাটার্ন ম্যাচিং কেবল একটি পদটির 'শীর্ষে' রচনার জন্য সরবরাহ করে। আমি মনে করি, জে এর প্যাটার্ন ক্যালকুলাসে এই বিধিনিষেধ আরোপ করা হয়েছে। এই সীমাবদ্ধতার দ্বারা আমি কী বোঝাতে চাই তা আমাকে ব্যাখ্যা করুন। ওক্যামেল, হাস্কেল, স্কেলা অর্থে প্যাটার্ন মিলের সাথে আপনি এর মতো কিছু বলতে পারবেন না
match M with
| C[ x :: _ ] -> printf "%i ...\n" x
| C[ [] ] -> printf "[]"
C[.]
এখানে কি ? এটি এমন একটি ভেরিয়েবল হতে পারে যা এক-ওয়ালযুক্ত প্রসঙ্গের ওপরে রয়েছে। তবে ওসিএএমএল, হাস্কেল বা স্কালার মতো ভাষা প্রোগ্রামারদের ভেরিয়েবল দেয় না যা স্বেচ্ছাসেবী (এক-হোলি) প্রসঙ্গের চেয়ে বেশি, কেবলমাত্র ভেরিয়েবল যা মানগুলির চেয়ে বেশি range অন্য কথায়, এই জাতীয় ভাষায় আপনি একটি শব্দে একটি স্বেচ্ছাসেবী অবস্থানে প্যাটার্ন মেলে না। আপনার আগ্রহী অংশগুলির জন্য আপনাকে সর্বদা প্যাটার্নের মূল থেকে মূলটি নির্দিষ্ট করতে হবে I আমি এই বিধিনিষেধ আরোপের মূল কারণটি অনুমান করি যে অন্যথায় প্যাটার্নের মিলটি অ-নিরোধক হবে, কারণ কোনও শব্দটি কোনও প্যাটার্নের সাথে মেলে একাধিক উপায় উদাহরণস্বরূপ, শব্দটি দুটি উপায়ে (true, [9,7,4], "hello", 7)
প্যাটার্নের C[7]
সাথে মেলে , ধরে নেওয়া এই C[.]
জাতীয় প্রসঙ্গে।