ফাংশনগুলিতে সীমাবদ্ধ পরিমাণের যুক্তির উপর ভিত্তি করে একটি ভাষা


16

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

ক) এই জাতীয় ভাষা কি কোড বোঝা সহজতর করবে?

খ) কোডের প্রবাহ কি আরও পরিষ্কার হবে? (সম্ভাব্য কম ইন্টারঅ্যাকশন 'লুকানো' সহ আরও পদক্ষেপে বাধ্য করা হয়েছে

গ) আরও জটিল কর্মসূচির জন্য এই বিধিনিষেধগুলি ভাষাটিকে স্বতন্ত্রভাবে ভারী করে তুলবে।

ঘ) (বোনাস) উপকার / বিবাদ সম্পর্কে অন্য কোনও মন্তব্য

বিঃদ্রঃ:

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


4
ওহে. প্রো এবং কনসের তালিকাগুলি খারাপ উত্তর দেয়। এখনও আপনার প্রয়োজনীয় তথ্যটি পেতে অন্য কোনও ফর্ম্যাটে আপনি কীভাবে আপনার প্রশ্নটি পুনরায় জবাব দিতে পারেন?
মেটাফাইট

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

2
'কি' প্রশ্নগুলির সাথে অন্তর্নিহিত কিছু ভুল আছে তা নয় (যদিও তারা কখনও কখনও @ মেটাফাইট বলেছিলেন উত্তর দেওয়া খুব কঠিন) তবে আপনি যদি, যারা বিষয়টি সম্পর্কে চিন্তাভাবনা করেছিলেন এবং কোনও প্রশ্ন জিজ্ঞাসা করার জন্য যথেষ্ট যত্নশীল হন তবে সত্যিকার অর্থে কোনও নামকরণ করতে পারবেন না বেনিফিট, তারপরে আমি আমার প্রাথমিক প্রতিক্রিয়াটি "কি? না! এটি বোকা কেন আপনি এটি করবেন" সঠিক তা নিশ্চিত

6
বেশ কয়েকটি ভাষা রয়েছে যা কেবলমাত্র ফাংশন অনুযায়ী একক যুক্তিকে মঞ্জুরি দেয়: ল্যাম্বডা ক্যালকুলাসের উপর ভিত্তি করে কিছু। ফলাফলের সাধারণত একটি ফাংশন একটি একক তালিকা যুক্তি গ্রহণ, অথবা একটি ফাংশন একটি ফাংশন যা পরবর্তী আর্গুমেন্ট গ্রহণ করা পর্যন্ত আর্গুমেন্ট প্রক্রিয়াজাত করা হয়েছে ফেরার হল: result = f(a)(b)…(z)। এমএল ভাষা পরিবারে যেমন হাস্কেল, তবে অন্যান্য ভাষায় যেমন লিস্প, জাভাস্ক্রিপ্ট, বা পার্লের ক্ষেত্রেও ধারণাটি এইভাবে।
আমন

3
@ ওরেঞ্জস্যান্ডলেমোনস: ঠিক আছে, তারপরে আমি কেবল একক পূর্ণসংখ্যার মধ্যে কেবল গুণ এবং সংযোজন (এনকোডিংয়ের জন্য) এবং বিভাগ এবং বিয়োগ (ডিকোডিংয়ের জন্য) ব্যবহার করে একটি সংখ্যক সংখ্যক পূর্ণসংখ্যার এনকোড করতে পারি। সুতরাং, আপনার পাশাপাশি পূর্ণসংখ্যা বা কমপক্ষে গুণন, সংযোজন, বিভাগ এবং বিয়োগফলকেও অস্বীকার করতে হবে। (প্রোগ্রামিংয়ের শক্তির এক পরিণতি হ'ল আপনি প্রায় যে কোনও কিছু ব্যবহার করে যে কোনও কিছু এনকোড করতে পারেন এবং এইভাবে বিষয়গুলিকে সীমাবদ্ধ করা সত্যিই সত্যই কঠিন general সাধারণভাবে, বিধিনিষেধ আসলে কোনও কিছুকে "সীমাবদ্ধ" করে না, তারা কেবল প্রোগ্রামারদের বিরক্ত করে))
জার্গ ডব্লু মিট্টাগ

উত্তর:


40

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

যেখানে বব মার্টিন আইএমএইচও সঠিক: 3 বা ততোধিক পরামিতি সহ ফাংশনগুলি প্রায়শই কোনও কোডের গন্ধের জন্য সূচক হয়। প্রচুর ক্ষেত্রে, প্যারামিটারগুলি একত্রিত করে একত্রিত করে একটি সম্মিলিত ডেটাটাইপ তৈরি করা যেতে পারে, অন্য ক্ষেত্রে এটি কেবলমাত্র খুব বেশি কাজ করার জন্য একটি সূচক হতে পারে।

তবে, আমি মনে করি না যে এটির জন্য একটি নতুন ভাষা উদ্ভাবন করা ভাল ধারণা হবে:

  • যদি আপনি সত্যই আপনার কোড জুড়ে এই নিয়মটি প্রয়োগ করতে চান তবে আপনার কেবল একটি বিদ্যমান ভাষার জন্য একটি কোড বিশ্লেষণ সরঞ্জামের প্রয়োজন, এর জন্য সম্পূর্ণ নতুন ভাষা আবিষ্কার করার দরকার নেই (উদাহরণস্বরূপ, সি # এর জন্য সম্ভবত 'fxcop' এর মতো কিছু ব্যবহার করা যেতে পারে) )।

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

  • কখনও কখনও বাস্তব বিশ্বের পরিস্থিতি থাকে যেখানে 2 টিরও বেশি পরামিতি প্রযুক্তিগত কারণে জিনিসগুলিকে আরও সহজ করে তোলে (উদাহরণস্বরূপ, যখন আপনাকে একটি বিদ্যমান API এ 1: 1 ম্যাপিং দরকার হয় যেখানে আপনি সাধারণ ডেটাটাইপগুলির ব্যবহারের সাথে আবদ্ধ হন, এবং বিভিন্নটি একত্রিত করতে পারবেন না একটি কাস্টম অবজেক্টে প্যারামিটার)


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

@ পিটারবি: অবশ্যই আমার সম্পাদনা দেখুন।
ডক ব্রাউন

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

6
@ jpmc26: অন্য দৃষ্টিকোণ থেকে, কোড গন্ধ একটি সম্ভাব্য সমস্যা, একটির ইঙ্গিত নয় ;-) এটি সমস্ত কোড গন্ধের সঠিক সংজ্ঞা উপর নির্ভর করে (এবং এটি একবার গন্ধ পেলে এটি খারাপ হয়ে যায়, তাই না) ?)
হাফমলে

3
@ পিটারবি বাস্তবে কি কেউ এটি করে? এখন প্রতিবার আপনি দুটি স্বেচ্ছাচারিত মান সহ একটি বিএমআই গণনা করতে চান প্রতিবার আপনাকে একটি নতুন ব্যক্তি উদাহরণ তৈরি করতে হবে। অবশ্যই, যদি আপনার অ্যাপ্লিকেশনটি ইতিমধ্যে ব্যক্তিদের সাথে শুরু করে ব্যবহার করে এবং আপনি নিজেকে প্রায়শই f (person.leight, person.height) এর মতো কিছু করতে দেখেন তবে আপনি এটি কিছুটা সাফ করতে পারেন তবে বিশেষত গ্রুপ প্যারামিটারগুলিতে নতুন নতুন বস্তু তৈরি করা ওভারকিল বলে মনে হচ্ছে।
আইনজীবী

47

এখানে প্রচুর ভাষা রয়েছে যা ইতিমধ্যে এইভাবে কাজ করে, যেমন হাস্কেল। হাসকেলে প্রতিটি ফাংশন হুবহু একটি যুক্তি নেয় এবং ঠিক একটি মান দেয়।

N-1 টি আর্গুমেন্ট গ্রহণ করে এমন ফাংশন দিয়ে এন আর্গুমেন্ট গ্রহণ করে এমন একটি ফাংশন প্রতিস্থাপন করা সর্বদা সম্ভব এবং চূড়ান্ত আর্গুমেন্ট গ্রহণ করে এমন একটি ফাংশন প্রদান করে। এটিকে পুনরাবৃত্তির সাথে প্রয়োগ করা, সর্বদা একটি ফাংশনটি প্রতিস্থাপন করা সম্ভব হয় যা একটি ফাংশন দিয়ে একটি নির্বিচার সংখ্যক আর্গুমেন্ট গ্রহণ করে যা ঠিক একটি যুক্তি নেয়। এবং এই রূপান্তরটি একটি অ্যালগরিদম দ্বারা যান্ত্রিকভাবে সম্পাদন করা যেতে পারে।

১৯50০-এর দশকে হাস্কেল কারি, যিনি ১৯২৪ সালে এর বর্ণনা দিয়েছিলেন, মোসা শানফিনকেল এবং ১৮৯৩ সালে এর পূর্বসূরিত গোটলব ফ্রেইজের পরে একে ফ্রেজ-শানফিনকলিং, শানফিন্কেলিং, শানফিন্কেল-কারিইং বা কারিইং বলা হয়।

অন্য কথায়, আর্গুমেন্টের সংখ্যা সীমাবদ্ধ করা ঠিক শূন্য প্রভাব ফেলে।


2
এটি যদি আপনি অবশ্যই ফাংশনগুলি ফিরে আসার অনুমতি দেন। তা না হলেও, আপনাকে যা করতে হবে তা হল মূল প্রোগ্রামটিতে পরবর্তী ফাংশনটি ডাকা। অর্থাৎ আপনার কাছে 1 + 1 + 1 থাকতে পারে যেখানে প্রথম সংযোজনটি এমন একটি ফাংশন যা অতিরিক্ত সংযোজনের জন্য কোনও ফাংশন প্রদান করে, বা এটি কেবল দু'বার কল করা যেতে পারে। পরবর্তী শৈলীটি তাত্ত্বিকভাবে, ক্লিনার হতে হবে বা আমি ভুল করছি?

5
"একেবারে শূন্য প্রভাব ফেলেছে" - ওপি-র প্রশ্ন ছিল কোডটির পাঠ্যতা বৃদ্ধি বা হ্রাস পাবে এবং আমি অনুমান করি যে কোনও ভাষার জন্য এই জাতীয় নকশার সিদ্ধান্তের কোনও প্রভাব নেই, আপনি কি করেন?
ডক ব্রাউন

3
@ ডকব্রাউন শালীন শক্তি এবং অপারেটর ওভারলোডিংয়ের সাথে, আমি একটি তরকারী ভাষা নিতে পারি এবং এটিকে একটি অনিশ্চিত ভাষার মতো দেখতে পারি। উদাহরণ: একটি শৃঙ্খলা শুরু করতে, চেইনটি প্রসারিত করার জন্য এবং এলএইচএসে চেইনের প্রতিটি বিষয়বস্তু একবারে এক করে পাস করার জন্য f *(call_with: a,b,c,d,e) ওভারলোড । যথেষ্ট দুর্বল অপারেটর ওভারলোডিং সিস্টেম কেবল সিনট্যাক্সকে আরও জটিল করে তোলে, তবে এটি অপারেটরের ওভারলোডিং সিস্টেমের চেয়ে বেশি কিছু দোষ। call_with :,*f
ইয়াক

প্রকৃতপক্ষে, হাস্কেলের কার্চিং একটি যুক্তি দিয়ে এন - আর্গুমেন্টের সাথে অন্য ফাংশনটি ফিরিয়ে নিয়ে একটি ফাংশনে এন আর্গুমেন্ট সহ একটি ফাংশন হ্রাস করে।
রায়ান রেইচ

2
@ রায়ানরিচ আপনি ঠিক বলেছেন যে আপনি হাস্কেল ফাংশনটির ধরণের স্বাক্ষরে "আর্গুমেন্টের সংখ্যা" এর একটি "ভূত" দেখতে পাচ্ছেন। এটা একটা প্রেতাত্মা বদলে একটি সত্য স্বাক্ষর কারণ সাধারণভাবে আপনি বুদ্ধিমান কিনা স্বাক্ষরে গত টাইপ পরিবর্তনশীল কোন উপায় আছে এছাড়াও একটি ফাংশন প্রকার। যে কোনও হারে, এই ভূতটি সেখানে থাকা এই সত্যটিকে অকার্যকর করে না যে হাস্কেলের সমস্ত ফাংশন 1 টি আর্গুমেন্ট গ্রহণ করে এবং একটি অ-ফাংশন মান বা অন্য কোনও ফাংশন দেয় যা 1 টি আর্গুমেন্টও গ্রহণ করে return এটি ->: a-> বি-> সিটি হ'ল একটি -> (বি-> সি) এর মিশ্রণে তৈরি। সুতরাং আপনি এখানে বেশিরভাগই ভুল।
আয়ান

7

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

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


আহ, সুতরাং এটি অ্যারেগুলিকে নিজের সাথে যোগাযোগ করার অনুমতি দেয়।

5

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

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

আপনার এও জানতে হবে যে প্রোগ্রামাররা আপনার সীমাবদ্ধতার আশপাশে কাজ করবে । তাদের যদি 3 বা ততোধিক যুক্তি প্রয়োজন হয়, তবে তারা কম-যুক্তিযুক্ত কলগুলিতে পরিণত করার জন্য কারি করার মতো কৌশল ব্যবহার করবে। যাইহোক, এটি প্রায়শই পড়ার যোগ্যতার ব্যয় করে উন্নতি না করে।

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


এটি সেরা উত্তর।
জারেড স্মিথ

1

আপনার দুটি জিনিস প্রয়োজন হবে:

  • অবসান
  • যৌগিক ডেটা টাইপ

জার্গ ডব্লু মিটাগের লেখা উত্তরটি ব্যাখ্যা করতে আমি একটি গাণিতিক উদাহরণ যুক্ত করব ।

গাউসি ফাংশন বিবেচনা করুন ।

গাউসিয়ান ফাংশনটির আকারের জন্য দুটি প্যারামিটার থাকে, যথা: গড় (বক্ররেখার কেন্দ্রের অবস্থান) এবং বৈকল্পিক (বক্ররের নাড়ি প্রস্থের সাথে সম্পর্কিত)। দুটি পরামিতি ছাড়াও, xএটির মূল্যায়নের জন্য ফ্রি ভেরিয়েবলের মানও সরবরাহ করতে হবে।

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

দ্বিতীয় ধাপে, আমরা একটি যৌগিক ডেটা টাইপ তৈরি করি যা একটি জিনিসে গড় এবং তারতম্যকে একত্রিত করে।

তৃতীয় ধাপে, আমরা দ্বিতীয় ধাপে আমরা যে যৌগিক ডেটা তৈরি করেছি তা বন্ধ করে গাউসীয় ফাংশনটি বন্ধ করে গাউসীয় ফাংশনটির একটি প্যারামিটারাইজেশন তৈরি করি।

অবশেষে, আমরা তৃতীয় ধাপে তৈরি বন্ধটিকে তার নিখরচায় ভেরিয়েবলের মান প্রদান করে মূল্যায়ন xকরি।

কাঠামো তাই:

  • মূল্যায়ন (গণনা)
    • প্যারামিটারাইজডগুশিয়ান (ক্লোজার: সূত্র, কিছু বন্ড ভেরিয়েবল)
      • গাউসিয়ান প্যারামিটারগুলি (যৌগিক ডেটা টাইপ)
        • গড় মান)
        • বৈচিত্র্য (মান)
    • এক্স (মুক্ত ভেরিয়েবলের মান)

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

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

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

  4. জোশ ব্লচের আইটেম 2 হ'ল: "যখন অনেকগুলি কনস্ট্রাক্টর পরামিতিগুলির মুখোমুখি হন তখন একজন নির্মাতার কথা বিবেচনা করুন" " আপনি দেখতে পাচ্ছেন যে এটি কীভাবে ভার্বোজ হয় , তবে এই জাতীয় লিখিত এপিআইয়ের সাথে কাজ করা খুব আনন্দিত।

  5. কিছু ভাষায় প্যারামিটারগুলির নাম দেওয়া হয়েছে যা বিশাল পদ্ধতি স্বাক্ষরগুলিকে নেভিগেট করতে আরও সহজ করার জন্য অন্য পদ্ধতি। কোটলিন উদাহরণস্বরূপ যুক্তির নাম দিয়েছে

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