ক্লোজুরে বনাম স্কালায় প্যাটার্ন মিল


12

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

স্কালা অ্যাপ্লিকেশনগুলি (উদাঃ লিফ্ট এবং প্লে) ভাষার প্যাটার্নের সাথে মেলে এমন দক্ষতার বিষয়ে গর্বের সাথে কথা বলে। অন্যদিকে ক্লোজারের একটি লাইব্রেরি, কোর.ম্যাচ রয়েছে এবং এটি ধ্বংসাত্মক নির্মিত, যা শক্তিশালী বলে মনে হয়।

* দ্রষ্টব্য: আমি এই প্রশ্নটি জিজ্ঞাসা করতে অনুপ্রেরণার কারণ হ'ল একটি ব্লগ পোস্ট যা দেখেছি যে কোনও প্রোগ্রামার পরীক্ষামূলকভাবে স্কেল এবং ক্লোজার উভয়কেই ব্যবহার করে একটি লিসপ ইন্টারপ্রেটার তৈরি করেছিল। তিনি বলেছিলেন যে ক্লজুর ম্যাচগুলি একটি নির্দিষ্ট দৈর্ঘ্যের পরে ভেঙেছিল, তবে কেন তা ব্যাখ্যা করতে পারলাম না, তবে আমি সত্যিই জানতে আগ্রহী। আপনি এই পোস্টটি এখানে পেতে পারেন: http://www.janvsmachine.net/2013/09/writing-simple-lisp-interpreter-in-clojure.html


3
@gnat ব্লগ পোস্টটি সত্যই ঘটনাবহুল বলে মনে হচ্ছে। আমার কাছে মনে হয় সে সত্যিই প্রতি সেকেন্ডে ব্লগের ব্যাখ্যা সম্পর্কে চিন্তা করে না, কেবল একটি নির্দিষ্ট ভাষার বৈশিষ্ট্য দুটি নির্দিষ্ট ভাষায় কীভাবে আলাদা হয় তার একটি তুলনা মাত্র। এটা কি উদ্দেশ্যমূলকভাবে জবাবদিহি করা যায় না?
ডোভাল

3
এই প্রশ্নের প্রতিরক্ষার ক্ষেত্রে: এটি উদ্দেশ্যমূলক, ভাল-লিখিত এবং স্পষ্ট। এই প্রশ্নটি পোস্ট করার আগে ওপি কোনও ব্লগ পড়ে কেন ব্যাপার না? এটি প্রশ্নের মান পরিবর্তন করে না।

1
এটি গরিলা বনাম শার্ক নয় কারণ তিনি উভয় ভাষায় সাধারণ যে একটি খুব নির্দিষ্ট বৈশিষ্ট্য সম্পর্কে খুব সুনির্দিষ্ট তথ্য চেয়েছিলেন, যদিও এটি উভয় ক্ষেত্রেই আলাদাভাবে প্রয়োগ করা যেতে পারে। এটি গরিলা বনাম শার্কের চেয়ে অনেক বেশি কেন্দ্রীভূত প্রশ্ন।
এভিক্যাটস

1
একমত। গরিলা বনাম শার্ক আপেল এবং কমলার মতো দু'টি তুলনামূলক তুলনামূলক তুলনামূলক। দুটি ভাষায় কোনও বৈশিষ্ট্যের প্রয়োগের তুলনা করা গরিলা বনাম শার্ক নয়। এটি সুনির্দিষ্ট, এটি প্রাসঙ্গিক, এবং বিশেষজ্ঞরা যে ধরণের প্রশ্নে আগ্রহী। এটি কেবল একটি "ভাষা চয়ন করতে আমাকে সহায়তা করা" প্রশ্ন নয়।
কার্ল বিলেফেল্ট

1
আমি ব্লগটি যে কারণে উল্লেখ করেছি তার কারণটি আমাকে প্রশ্ন জিজ্ঞাসা করতে প্রেরণা জাগিয়েছিল সে সম্পর্কে আপনার বোঝাপড়াটি করা। আমি ভেবেছিলাম এটি আমার আসল প্রশ্নের ভাল পাদটীকা হবে। আমি কিছু ব্যাখ্যা করেছি যাতে আপনার এটি নিজে পড়ার দরকার না হয় তবে আপনি যদি লিখিত হয় তবে একটি লিঙ্ক অন্তর্ভুক্ত করেছেন। আমি ভেবেছিলাম * এবং "দ্রষ্টব্য:" এটি বেশ পরিষ্কার করে দিয়েছে, তবে আমার ধারণা আমারও কিছু বন্ধনী এবং ড্যাশগুলির একটি লাইন যুক্ত করা উচিত ছিল। পিএস: হাঙ্গর
kurofune

উত্তর:


21

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

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

এটি নীতিতে নেমে আসে যে কোনও ভাষা ব্যবহার করে প্রোগ্রামারদের ভাষার নিজস্ব সেরা প্রতিমা ব্যবহার করা উচিত। ক্লোজুরে স্কালার মতো কোড লেখার চেষ্টা করে এর অসুবিধা হতে চলেছে এবং বিপরীতে।


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

এই উত্তরের জন্য ধন্যবাদ। লিঙ্কযুক্ত ভিডিওতে প্যাটার্ন ম্যাচিংয়ের উল্লেখ রয়েছে যখন রিচ বলেন "যদি আপনার কাছে প্যাটার্ন ম্যাচিং হিংসা থাকে তবে এটি আমার অর্ধেক অংশ বাদে এটির অর্ধেক, যা শর্তাধীন অংশ" " github.com/matthiasn/talk-transcriptts/pull/90/files#
হাওকিয়ে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.