জাভাস্ক্রিপ্ট একটি কার্যকর প্রোগ্রামিং ভাষা


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

সত্যি বলতে আমি 'ফাংশনাল প্রোগ্রামিং' পুরোপুরি বুঝতে পারি না: পি তাই জাভাস্ক্রিপ্টকে ফাংশনাল প্রোগ্রামিংয়ের সাথে তুলনা করা সম্পূর্ণ ভুল হতে পারে।

ফাংশনাল প্রোগ্রামিংকে সাধারণ লোকের পদে রাখার জন্য: বেনামে ফাংশন ব্যবহার করে কি কেবল এস্ট্রস্ট্রেশনের সুবিধা?

নাকি সে পথটি খুব সহজ? একটি সহজ উপায়ে, ওওপি হ'ল অবজেক্টগুলির মাধ্যমে বিমূর্তনের সুবিধা, তবে আমি বিশ্বাস করি যে ওওপি বর্ণনা করার জন্য থ্যাটস কিছুটা সরলতাযুক্ত।

এটি কি কার্যকরী প্রোগ্রামিংয়ের একটি ভাল উদাহরণ? ...

জাভাস্ক্রিপ্ট ওওপি উদাহরণ:

// sum some numbers
function Number( v )
{ 
  this.val = v;
}

Number.prototype.add( /*Number*/ n2 )
{
    this.val += n2.val;
}

কার্যকরী প্রোগ্রামিং উদাহরণ:

function forEach(array, action) 
{
   for (var i = 0; i < array.length; i++)
       action(array[i]);
}  

function add(array)
{
    var i=0;
    forEach(array, function(n)
    {
        i += n;
    });
    return i;
}

var res = add([1,9]);

এটি "ক্রিয়ামূলক প্রোগ্রামিং ভাষা" এর সংজ্ঞা উপর নির্ভর করে। একটি বিস্তৃত অর্থে, এটি বদ্ধমূল্যের সাথে কার্যকরী মানগুলি তৈরি করার ক্ষমতা হিসাবে বোঝা যায়, যেমন "ল্যাম্বদা" নির্মাণ (ল্যাম্বডা-ক্যালকুলাসের অর্থে) থাকার পরে এবং জাভাস্ক্রিপ্টটি বিলটি খাপ খায়।
বেসিল স্টারিনকিভিচ

2
Or is that way too simple?ইয়াপ, এটা। বেনামে ফাংশনগুলি কখনও কখনও ফাংশনাল ভাষা এবং একাধিক দৃষ্টান্তমূলক ভাষার সাথে যুক্ত হয় যা কার্যকরী প্রোগ্রামিংয়ের পক্ষে থাকে, তবে এগুলি কার্যকরী ভাষার অনন্য বৈশিষ্ট্য নয়। তবে আপনি যদি তাদেরকে λ-ক্যালকুলাসের বাস্তবায়ন হিসাবে দেখেন তবে ভাল তারা কার্যকরী প্রোগ্রামিংয়ের মূল অংশ, মূল বিষয়টি এটি এত সহজ নয় :)
yannis

জাভাস্ক্রিপ্টের নকশা বাস্তবায়নগুলি টেল-কল অপ্টিমাইজেশান করতে সক্ষম করে। আমার বইগুলিতে যেগুলি কেবল এটিকে কার্যকরী হিসাবে লেবেল করা থেকে বাধা দেয়।
ড্যান_ ওয়াটারওয়ার্থ

I know it has objects & you can do OOP with it alsoনা, আপনি পারবেন না। এটি প্রোটোটাইপ ভিত্তিক প্রোগ্রামিং যা শ্রেণি এবং অবজেক্টের মধ্যে পার্থক্য দূর করে। ব্যক্তিগতভাবে আমি প্রোটোটাইপ ভিত্তিক প্রোগ্রামিংটিকে এই বেসিক স্তরে ত্রুটিযুক্ত বলে বিবেচনা করি।
রোকএল

জাভাস্ক্রিপ্ট কোনও কার্যকরী ভাষা নয়, এটি নিশ্চিত যে এটির কার্যকরী বৈশিষ্ট্য রয়েছে তবে এটি ভাল পুরানো অপরিহার্য সিও করে তোলে, প্রকৃতপক্ষে প্রতিটি ভাষার মূল কার্যকরী বৈশিষ্ট্য রয়েছে। একটি খাঁটি কার্যকরী ভাষা, যেমন হাস্কেল, এমএল, ইত্যাদি একটি ঘোষণামূলক, অপরিহার্য নয়, ভাষা।
ALXGTV

উত্তর:


72

জাভাস্ক্রিপ্ট কি কার্যকরী ভাষা? আমি জানি এটির অবজেক্টস রয়েছে এবং আপনি এটির সাথে ওওপিও করতে পারেন, তবে এটি কী একটি কার্যকরী ভাষাও এটি ব্যবহার করা যেতে পারে?

কখনও কখনও লোকেরা ফাংশনাল প্রোগ্রামিং বলবে, যখন তাদের অর্থ হ'ল আবশ্যক প্রোগ্রামিং বা পদ্ধতিগত প্রোগ্রামিং । কঠোরভাবে বলতে গেলে, কার্যকরী প্রোগ্রামিং হ'ল:

কম্পিউটার সায়েন্সে, ফাংশনাল প্রোগ্রামিং হ'ল একটি প্রোগ্রামিং দৃষ্টান্ত যা গণনা গণিতের ক্রিয়াকলাপগুলির মূল্যায়ন হিসাবে গণ্য করে এবং রাষ্ট্র এবং পরিবর্তনীয় ডেটা এড়ায় । এটি অত্যাবশ্যক প্রোগ্রামিং শৈলীর বিপরীতে ফাংশনগুলির প্রয়োগের উপর জোর দেয়, যা রাষ্ট্রের পরিবর্তনের উপর জোর দেয়। ফাংশনাল প্রোগ্রামিংয়ের শিকড়টি ল্যাম্বদা ক্যালকুলাসে রয়েছে, এটি ফাংশন সংজ্ঞা, ফাংশন অ্যাপ্লিকেশন এবং পুনরাবৃত্তি অনুসন্ধানের জন্য 1930-এর দশকে একটি প্রথাগত সিস্টেম তৈরি হয়েছিল। লাম্বদা ক্যালকুলাসে অনেকগুলি কার্যকরী প্রোগ্রামিং ভাষাগুলি বিশদ হিসাবে দেখা যায়।

যদিও জাভাস্ক্রিপ্ট ব্যাপকভাবে পরিচিত বা কার্যকরী ভাষা হিসাবে ব্যবহৃত হয় না, তবে এর কিছু কার্যকরী উপাদান রয়েছে :

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

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

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

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

আপনি জানেন কীভাবে ওওপি প্রোগ্রামিংয়ে পরবর্তী বিবর্তনের মতো হয়ে উঠেছে / তার মনে হয়, এর অর্থ কি 'ফাংশনাল প্রোগ্রামিং' পরবর্তী বিবর্তন

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

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

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

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

এটি শিখার এক ভয়ংকর উপায় হবে। ফাংশনাল এবং অবজেক্ট অরিয়েন্টেশন হ'ল বেশ আলাদা স্টাইল এবং ভয়ঙ্কর সরল সাধারণগুলি বাদে অন্য কোনও উদাহরণ এক বা অন্য শৈলীতে খাপ খায় না।

1 তবে ইদানীং জেনেরিক প্রোগ্রামিংয়ে এর সুযোগ প্রসারিত করার চেষ্টা করে, আসুন দেখুন কীভাবে তা হয়।


উপসংহারে:

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

5
+1 দুর্দান্ত প্রতিক্রিয়া। প্রোগ্রামিং শিক্ষাকে যেভাবে কাঠামোবদ্ধ করা হয়েছে তার কারণে, নতুন কোডারদের মনে হয় যে দৃষ্টান্তগুলি একচেটিয়া এবং পৃথক, তবে তারা তা নয়। ওওপি কোডটি লেখার চেষ্টা করুন যা কার্যকরী ধারণাগুলির সুবিধা গ্রহণ করে যখন এটি করার অর্থ হয়। ইভেন্ট-চালিত প্রোগ্রামিং একটি দৃষ্টান্ত, তবে ইডিপির দিকগুলি অবশ্যই প্রতিটি জিআই এবং ওয়েব প্রোগ্রামকে প্রভাবিত করে। পলিমॉर्फিজম , ওওপির একটি মূল বৈশিষ্ট্য, সত্যই জেনেরিক প্রোগ্রামিং। এই ধারণাগুলির নামকরণ আমাদের ভাল প্রোগ্রামিংয়ের ধারণাটি তৈরি করতে সহায়তা করে তবে আপনার অন্যের বর্জনের জন্য এটি ব্যবহার করা উচিত নয়।
কোজিরো

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

"এটি শিখার জন্য একটি ভয়ানক উপায়” "আমি এই বইটি সবেমাত্র পড়া শেষ করেছি যা কোনও সমস্যা উপস্থাপন করে এবং এটি ওওপি এবং এফপি শৈলিসহ বিভিন্ন দৃষ্টান্তের সাথে সমাধান করে: github.com/crista/exercises-in-pogramming-style । আমি এর থেকে অনেক কিছু শিখেছি!
নিক

@nick যে শুধুমাত্র আপনার কাছে বর্ণনা করতে পারেন কি দৃষ্টান্ত রূপ এবং মত কিভাবে এটি কাজ করে, কিন্তু এটা আপনাকে বলতে না কেন , তর্কসাপেক্ষ সবচেয়ে গুরুত্বপূর্ণ দিক পারে। তবে আপনাকে কেন শিখতে হবে তা কেন শিখতে হবে :) কেন কখনও কখনও আমরা ভুলে যাই যে এই জিনিসগুলি একটি প্রক্রিয়া।
ম্যাথু ব্রেন্ট

8

জাভাস্ক্রিপ্ট একটি কার্যকরী ভাষা হিসাবে ব্যবহার করা যেতে পারে, বাস্তবে এটি এটি বেশ ভাল করে তোলে। এটি বাস্তবায়ন সম্ভবল্যাংড্ডা নির্মাণের জন্য মনাদদের সমর্থন থাকতে পারে ইত্যাদি It এটি এককভাবে কোনও কার্যকরী ভাষা নয় কারণ এতে প্রচুর অবজেক্ট ওরিয়েন্টেড বৈশিষ্ট্য রয়েছে তবে এটি সেভাবে ব্যবহার করা যেতে পারে। আসলে আমি দেখতে পেয়েছি যে জাভাস্ক্রিপ্টকে একটি কার্যকরী ভাষা হিসাবে ব্যবহার করা এটির ব্যবহারের দুর্দান্ত উপায়। (উদাহরণস্বরূপ jQuery এবং আন্ডারস্কোর.জেএস)


ভাল এবং সংক্ষিপ্ত! সম্মত হয়েছেন যে কার্যকরী প্রোগ্রামিং প্রায়শই জেএস-তে কিছু করার সহজতম উপায়।
বাংলোস্টিংক

মনাদাদের চেয়েও আকর্ষণীয়, আপনি তীরগুলি কার্যকর করতে পারেন হ'ল জেএস ( cs.umd.edu/projects/PL/arrowlet ) ar এখন, কেউ কেন জাভাস্ক্রিপ্টে তীর চাইবে , এটি একটি মুক্ত প্রশ্ন। তবে তা করা যায়।
rtPress

আমি স্বীকার করব যে তীরগুলি কার্যকর হবে কিনা তা আমি যথেষ্ট পরিমাণে বুঝতে পারি না। তবে আমি জাভাস্ক্রিপ্টে মনডস-এর একটি বইয়ের উপর কাজ করছি এবং তীরগুলিতে একটি অধ্যায় যোগ করতে পারি ( শপ.রিলি / প্রোডাক্ট 06636920023890.do )
জাচারি কে

6

বিবর্তন বলতে সাধারণত বর্ধিত পরিবর্তন বোঝায় । ওওপি পদ্ধতিগত প্রোগ্রামিংয়ের একটি বর্ধিত সংযোজন নয় - বাস্তবে, এটি অন্তর্নিহিত প্রোগ্রামিং মডেলের সম্পূর্ণরূপে অর্থেগোনাল এবং এর যে কোনওটির সাথে মিলিত হতে পারে। কার্যকরী প্রোগ্রামিং পদ্ধতিগত, ওওপি বা যে কোনও ক্ষেত্রে বর্ধিত সংযোজন নয় - এটি বিকল্প ভিত্তি মৌলিক কম্পিউটিং নীতির প্রকাশ করার জন্য, এবং এটি আসলে প্রথম এই ধরনের ভিত্তি কি কখনো প্রণয়ন, দীর্ঘ আগে প্রথম কম্পিউটারের হাজির। এটি বুঝতে গুরুত্বপূর্ণ যে এ জাতীয় সমস্ত মৌলিক ব্যবস্থা সমতুল্য (যেমন, একজনের সাথে অন্যের শর্তে প্রকাশ করা যেতে পারে)।

ক্রিয়ামূলক পদ্ধতির বোঝার জন্য আপনাকে প্রথমে প্রাথমিক গণিতটি নেওয়া দরকার । জাভাস্ক্রিপ্টে একটি কার্যকরী শৈলীতে কোড করার অর্থ কী তা আপনি যদি অনুভব করতে চান তবে jQuery ব্যবহার শুরু করুন ।


2

না।

জাভাস্ক্রিপ্ট প্রথম এবং সর্বাগ্রে একটি অবজেক্ট ভিত্তিক ভাষা language

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

IMO কোনও ভাষাটিকে উপযুক্ত দৃষ্টান্তে শ্রেণিবদ্ধ করার উপায়টি বিবেচনা করা উচিত:

  • ভাষা নির্মানের দ্বারা প্রভাবিত স্টাইলটি কী (স্পষ্টভাবে জাভাস্ক্রিপ্টের জন্য OOP, কার্যকরী ভাষাগুলি পরিবর্তে ফাংশন এবং অপরিবর্তনীয় ডেটা মানগুলিকে জোর দেয়)
  • ভাষার মূল গ্রন্থাগারগুলিতে কী দৃষ্টান্ত সমর্থিত (আবার স্পষ্টভাবে জাভাস্ক্রিপ্টের জন্য ওওপি)
  • ভাষায় কোন বৈশিষ্ট্যগুলি অক্ষম বা নিরুৎসাহিত করা হয়েছে (কার্যকরী ভাষাগুলি পারস্পরিক পরিবর্তনশীলদের নিরুৎসাহিত করে বা নিষেধ করে, যা জাভাস্ক্রিপ্টের ক্ষেত্রে নয়)
  • ভাষা ব্যবহার করে বিকাশকারীদের সম্প্রদায়ের মধ্যে কী বিকাশের রীতি প্রচলিত রয়েছে (আবার, জাও স্ক্রিপ্ট বিশ্বে ওওপি স্পষ্টভাবে প্রচলিত)

ব্যক্তিগতভাবে আমি এটিকে মজাদার বলে মনে করি যে প্রচুর লোক একটি ভাষা দাবি করা পছন্দ করে কারণ এটি এই মুহুর্তে একটি ট্রেন্ডি শব্দ হিসাবে রয়েছে :-)

আপনি যদি বছরের পর বছর ধরে প্রোগ্রামিং দৃষ্টান্তগুলির জন্য কিছুটা দীর্ঘ তবে বিনোদনমূলক দৃষ্টিকোণ চান, তবে আঙ্কেল বব মার্টিনের ভিডিও "দ্য লাস্ট প্রোগ্রামিং ল্যাঙ্গুয়েজ" দেখার মতো বিষয় । আমার জন্য এই আলাপ থেকে দুর্দান্ত অন্তর্দৃষ্টিটি হ'ল যে প্রোগ্রামিং দৃষ্টান্তগুলি তারা কী বৈশিষ্ট্যগুলি গ্রহণ করে তা দ্বারা সংজ্ঞায়িত করা হয় , কোন বৈশিষ্ট্য তারা রাখে না ......


What is the dominant style enabled by the language constructsআমি আপনাকে পার্লের কাছে চেষ্টা করার চেষ্টা করেছি এবং প্রয়োগ করার সাহস করছি ... বা আপনার কোনও বিষয়, সত্যিই :)
ইন্নিস

2
পার্ল? ভাল চ্যালেঞ্জ! এটি কিছুটা এ্যাসেম্বলি ভাষার মতো এই অর্থে যে আপনি একসাথে চান এমন কোনও দৃষ্টান্ত হ্যাক করতে পারেন তবে আমি যে সাধারণ ব্যবহার দেখেছি (স্ক্রিপ্টিং) এটি বেশিরভাগই একটি আবশ্যক / পদ্ধতিগত ভাষা হিসাবে ব্যবহৃত হয়।
মাইকের

ওয়েল, ওওপও বেশ সাধারণ। অবশ্যই একটি perly উপায়। এবং, ক্রিয়ামূলক খুব , যদিও বিরল। পার্ল কেবল পার্ল, এর থেকে বোঝার চেষ্টা করার কোনও ধারণা নেই :)
ইয়ানিস

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

2

জাভাস্ক্রিপ্ট প্রথম ক্রিয়াকলাপযুক্ত দক্ষতার সাথে প্রোটোটাইপাল - এটি প্রথম শ্রেণীর অবজেক্ট হিসাবে ফাংশনগুলির ব্যবহার দ্বারা অনুমোদিত granted

এর অর্থ হ'ল আপনি ডেটা হিসাবে ফাংশনগুলি ব্যবহার করতে পারেন, যা স্থিতি বজায় রাখার ভেরিয়েবলগুলির প্রয়োজনীয়তা হ্রাস করার কৌতূহল প্রভাব রয়েছে। যদি আপনি দেখতে পান যে আপনি নিজের বিবৃতিতে পৌঁছেছেন, বা এক বা একাধিক "যদি" বিবৃতি ব্যবহার করছেন, তবে আপনি কার্যক্ষম শৈলী থেকে বিপথগামী হয়ে যাচ্ছেন।

কার্যকরী শৈলীর আর একটি উল্লেখযোগ্য আইডিয়াসনক্রসিটি হ'ল ফাংশনগুলি কেবল তাদের মূল্যায়নের ফলাফলটিই ফিরে আসে এবং তাদের ক্ষেত্রের বাইরে রাষ্ট্রের কোনও প্রতিক্রিয়া না ঘটে:

// oops, this is producing a side effect
function sideEffecter(){//theres no input...        
    window.thingy = 'foo';
    // hey, this isn't returning anything!!!
} 

কার্যকরী ভাষাগুলি অ-ধ্বংসাত্মক - যার অর্থ তারা ইনপুটটিকে রূপান্তরিত করে না, বরং ইনপুটটির উপর ভিত্তি করে সম্পূর্ণ নতুন ডেটা ফেরত দেয়। এই থ্রেড দেখুন: https://stackoverflow.com/questions/749084/jquery-map-vs-each

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

(আইএমও) মনে রাখা গুরুত্বপূর্ণ বিষয়টি হ'ল জেএস যখন কিছু কার্যকরী নিদর্শনগুলি ব্যবহার করতে পারে তবে তা কার্যকর করার জন্য এটি সর্বদা সজ্জিত নয়।

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

var test = ['foo', 'bar', 'baz'], removeFunc, removeLoop;

//(semi)functional style...
// to be really functional each condition in the ternary would be another function
removeFunc = function(src, trg) {
    return src.length === 0 ? 
        src : 
            src[0] === trg ? 
                src.slice(1) : 
                    [src[0]].concat(removeFunc(src.slice(1), trg));
};

//but this is faster
removeLoop = function(src, trg){
    var len = src.length, // using variables to represent state...
        i=0, 
        result = [];        
    while(i < n){
       if(src[i] !== trg){
          result.push(src[i]);
       }
       i = i+1;
    }
}

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

এটি জাভাস্ক্রিপ্টে কার্যকরী কাঠামো ব্যবহার করা উচিত নয় - এর পরিবেশের সাথে সম্পর্কিত এর বাস্তবায়নের সীমাবদ্ধতা সম্পর্কে সচেতন হন।

এখানে কিছু লিঙ্ক আপনার আগ্রহী হতে পারে:

দুর্দান্ত "স্পষ্টত জাভাস্ক্রিপ্ট" থেকে জাভাস্ক্রিপ্টে ফাংশনাল প্রোগ্রামিংয়ের একটি ভাল অধ্যায়

লিটল স্কিমার

আমার এক বন্ধু লিটল স্কিমারের উপর ভিত্তি করে একটি জেএস লাইব্রেরি লিখেছিল

স্কিম সম্পর্কিত একটি ভাল টিউটোরিয়াল যা আপনাকে এফপি আরও ভালভাবে বুঝতে সহায়তা করতে পারে

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