লাম্বদা ভাষা কী?


90

আমি "জাভাস্ক্রিপ্ট: দ্য গুড পার্টস" পড়ছিলাম এবং লেখক উল্লেখ করেছেন যে জাভাস্ক্রিপ্টটি ল্যাম্বডা ভাষাগুলি প্রথম চালু হয়েছিল।

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

ল্যাম্বডা ভাষা কী তা আমি পাইনি। এই জাতীয় ভাষার বৈশিষ্ট্য কী কী এবং এটি জাভা, সি, সি ++ এবং পিএইচপি এর মতো ভাষা থেকে আলাদা কীভাবে?


6
লাম্বদা মানে বেনামে প্রকাশ। সুতরাং
লাম্বদা

গুগল বুকস লিঙ্ক, এফওয়াইআই: books.google.co.uk/…
লুকাস জোনস

4
উইকিপিডিয়ায় ল্যাম্বদা ক্যালকুলাস দেখুন ।
ওবেদের

অনেক ভাল উত্তর। আমি এখন পর্যন্ত যা বুঝতে পেরেছি তা হল আপনি যদি বেনামে ফাংশন ব্যবহার করছেন তবে আপনি লাম্বদা ভাষাতে কাজ করছেন। জাভা জাতীয় ভাষা থেকে লামদা ভাষা কতটা আলাদা তা সঠিক বোঝা যায়।
সুশীল ভরওয়ানি

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

উত্তর:


38

আমি কখনই কাউকে "ল্যাম্বডা ভাষা" শব্দটি ব্যবহার করতে শুনিনি এবং জাভাস্ক্রিপ্টকে "প্রথম" হিসাবে বাদ দিতে পারে এমন একমাত্র বিশ্লেষণযোগ্য সংজ্ঞা বলতে পারি।

এই বলেছিল, আমার সন্দেহ হয় তার অর্থ হতে পারে:

  • কার্যকরী ভাষা: ভাষার একটি শ্রেণি যেখানে গণনা (বা উচ্চতর অর্ডার) ফাংশনগুলির একটি রাষ্ট্রবিহীন রচনা হিসাবে মডেল করা হয় (বা হতে পারে)। এলআইএসপি, স্কিম, এমএল, হাস্কেল ইত্যাদি প্রায়শই এই শ্রেণীর সাথে যুক্ত হয়, যদিও এর মধ্যে বেশিরভাগই আরও সঠিকভাবে মিশ্রিত দৃষ্টান্ত বা "কার্যকরী alচ্ছিক" ভাষা হয় are জাভাস্ক্রিপ্টে তর্কযোগ্যভাবে প্রোগ্রামিংয়ের একটি "কার্যকরী শৈলী" তৈরি করতে প্রয়োজনীয় বৈশিষ্ট্য রয়েছে।
  • যে ভাষাগুলি বেনাম ফাংশন তৈরি করতে দেয় ( functionজাভাস্ক্রিপ্টে সিনট্যাক্স ব্যবহার করে; এটি lambdaঅনেকগুলি ভাষায় লেখা হয়, তাই সম্ভবত "ল্যাম্বডা ভাষা")।

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

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


লুকাশ জোনস গুগল বইয়ের লিঙ্কটি পোস্ট করেছেন এমন লিঙ্কটি দয়া করে দেখুন যেখানে আমি ঠিক পৃষ্ঠাতে নিয়ে যাচ্ছি। তোমার উত্তরের জন্য ধন্যবাদ
সুশীল ভরওয়ানি

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

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

9
এটি অন্বেষণ করার জন্য একটি বিশাল বিষয়। গত বছর আমি যেখানে ছিলাম আপনি এখন ছিলেন: আমি ক্রকফোর্ডের প্রবন্ধ এবং বক্তৃতা পেয়েছি এবং সমাপনীকরণগুলি বুঝতে চেয়েছিলাম। আমি তোমাদের উইকিপিডিয়া দিয়ে শুরু সুপারিশ করবে, তারপর কয়েক রচনাগুলিকে উপর সরানো: জন হিউজেস "কেন কার্যকরী প্রোগ্রামিং বিষয়গুলি" scribd.com/doc/26902/whyfp , স্লাভা Akhmechet "প্রায়োগিক আমাদের বাকি জন্য প্রোগ্রামিং" defmacro.org/ramblings /fp.html আপনার মনকে প্রসারিত করার জন্য প্রচুর বই রয়েছে: স্কিমের অনুভূতি পেতে লিটল স্কিমারটি দেখুন এবং তারপরে কম্পিউটার প্রোগ্রামগুলির কাঠামো এবং ব্যাখ্যায় এগিয়ে যান।
মিচিয়াকিগ

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

48

একটি ল্যাম্বডা ভাষা, সহজ ভাষায়, এমন একটি ভাষা যা কোনও ফাংশনকে অন্য ফাংশনে পাস করতে দেয়, যেখানে ফাংশনটিকে অন্য পরিবর্তনশীল হিসাবে বিবেচনা করা হয়। এছাড়াও, আপনি এই ফাংশনটি বেনামে (বা ইনলাইন) পাস করার জন্য সংজ্ঞা দিতে সক্ষম হবেন। পিএইচপি 5.3 ল্যাম্বডা ফাংশনগুলির জন্য সমর্থন যুক্ত করেছে। জাভাস্ক্রিপ্ট কি প্রথম মূলধারার ভাষা ছিল? লিস্প জাভাস্ক্রিপ্টের আগে শিক্ষাগত সেটিংসে এবং আমাদের প্রিয় ইমাসকে http://www.gnu.org/software/emacs/manual/html_node/eintr/ কাস্টমাইজ করার ক্ষেত্রে ব্যাপকভাবে ব্যবহৃত হয়েছে

এখানে একটি উদাহরণ

function applyOperation(a, b, operation) {
  return operation(a,b);
}

function add(a,b) { return a+ b; }
function subtract(a,b) {return a - b;}

// Can be called like
applyOperation(1,2, add);
applyOperation(4,5, subtract);
// Anonymous inline function
applyOperation(4,7, function(a,b) {return a * b})

এটি সি থেকে আলাদা কীভাবে? সি তে, আপনি ফাংশনগুলিতে পয়েন্টারটি পাস করতে পারেন, তবে আপনি বেনামে এটিকে ইনলাইন সংজ্ঞায়িত করতে পারবেন না।

জাভাতে (সংস্করণ 8 এর পূর্বে) একই প্রভাব অর্জন করতে আপনাকে অবশ্যই এমন একটি বস্তু পাস করতে হবে যা একটি ইন্টারফেস প্রয়োগ করে, যা প্রকৃতপক্ষে বেনামে ইনলাইন সংজ্ঞায়িত করা যেতে পারে।


4
"লিস্প ব্যাপকভাবে ব্যবহৃত হয়েছে" কার দ্বারা? আমি সর্বদা এটি সম্পর্কে জানতাম, যেহেতু অধ্যাপকরা সর্বদা এটি নিয়ে আলোচনা করতেন, তবে বাস্তবে, আমি লিস্প ব্যবহার করে এমন কাউকে কখনও পাইনি। আমি বলব যে যে কেউ জাভাস্ক্রিপ্ট ব্যবহার করেছেন তাদের পরিচিত কেউ খুঁজে পেতে পারেন যা জাভাস্ক্রিপ্টকে আরও "মূলধারার" করে তোলে।
পালসুইম

"পিএইচপি 5 ল্যাম্বদা ফাংশনগুলির জন্য সমর্থন যুক্ত করেছে"। আসলে iy ছিল পিএইচপি 5.3 যা ল্যাম্বডা ফাংশন চালু করেছিল।
ক্রোজিন

আমি খুব কম লোকের সাথে দেখা করেছি যারা এটি ব্যবসায়িক প্রসঙ্গে ব্যবহার করেছেন, তবে পাসকালের মতো একবারে এটি শিক্ষামূলক সেটিংসে ব্যাপকভাবে ব্যবহৃত হয়।
হুয়ান মেন্ডেস

4

তিনি ল্যাম্বদা ক্যালকুলাসকে বোঝান

লাম্বদা ক্যালকুলাস, λ-ক্যালকুলাস হিসাবেও লেখা, ফাংশন সংজ্ঞা, ফাংশন অ্যাপ্লিকেশন এবং পুনরাবৃত্তির জন্য একটি আনুষ্ঠানিক সিস্টেম। [...]

[...] টাইপড ল্যাম্বডা ক্যালকুলাস বিশেষত লিস্প এবং টাইপড ল্যাম্বদা ক্যালকুলি আধুনিক টাইপ সিস্টেমের ভিত্তি হিসাবে কাজ করে।


4

আমি একটি বেনামে একটি বেনামি ফাংশন এবং কোনও ফাংশনের উল্লেখ হিসাবে সংজ্ঞায়িত দেখেছি। জাভাস্ক্রিপ্ট উভয় সমর্থন করে:

setTimeout(function(){ /* an anonymous function */ }, 100)

var f = function(){ /* function ref */ }

এখানেই জেএস এর প্রচুর শক্তি এবং নমনীয়তা পায়। জাভা প্রথমটিকে কিছুটা হলেও সমর্থন করে (বেনামে ইন্টারফেস বাস্তবায়ন) তবে পরে নয় - জাভা 8 এর আপডেটের জন্য নীচে দেখুন।

এটি আমার কাছে অস্পষ্ট যা (বা উভয়) ল্যাম্বডার সঠিক সংজ্ঞা।

এই বৈশিষ্ট্যগুলিকে সমর্থন করার জন্য জেএস অবশ্যই প্রথম ভাষা নয়। স্মৃতি থেকে যাওয়া, আমি মনে করি এটির ছোট্ট কথাটি যে ভাষা উত্সাহীরা সর্বদা ল্যাম্বডাসকে সমর্থন করার জন্য পাগল হন।

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

someGuiContainer(new WidgetInterface()
      {
           public void importantMethodToDefine(){
             // Handle having the method called in my special widget way
           }
        }
)

হালনাগাদ

জাভা, 8 হিসাবে, এখন আনুষ্ঠানিকভাবে ল্যাম্বদা ভাষা।

আপনি এখন নিম্নলিখিত সিনট্যাক্স ব্যবহার করতে পারেন:

MathOperation addition = (int a, int b) -> a + b;
System.out.println("10 + 5 = " + tester.operate(10, 5, addition));

কোড উত্স


1

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

জাভাস্ক্রিপ্ট মূলত ভাষা প্রকল্পের উপর ভিত্তি করে তৈরি করা হয়েছে এবং এটি লিস্পের পিতা এবং এছাড়াও এটি এর লামদা কাঠামোটি নিয়েছে এবং এটির সাথে মূলধারায় চলে গেছে।


0

উইকিপিডিয়া থেকে: লিস্প এবং পাইথনের মতো প্রোগ্রামিং ভাষায়, ল্যাম্বডা এমন একটি অপারেটর যা লম্বা ক্যালকুলাস ব্যবহার করে বেনাম ফাংশন বা ক্লোজারগুলি বোঝাতে ব্যবহৃত হয়। পাইথন ভাষায় ল্যাম্বডা ব্যবহারের উদাহরণ হ'ল কম্পিউটার কোডের এই বিভাগটি যা প্রতিটি প্রবেশের শেষ চরিত্রের দ্বারা বর্ণমালা অনুসারে একটি তালিকা সাজায়:

>>> list = ['woman', 'man', 'horse', 'boat', 'plane', 'dog']
>>> sorted(list, key=lambda word: word[-1])
['horse', 'plane', 'dog', 'woman', 'man', 'boat']

* In the C# programming language a lambda expression is an anonymous function that can contain expressions and statements

0
  • জাভাস্ক্রিপ্ট বেনামে ফাংশন সংজ্ঞায়িত করতে দেয় যা এমন একটি ফাংশন যা কোনও সনাক্তকারীকে আবদ্ধ নয়। এই জাতীয় ফাংশন লাম্বদা বিমূর্তি হিসাবেও পরিচিত এবং যেহেতু জেএস এটি সমর্থন করে এটি ল্যাম্বদা ভাষা নামে পরিচিত।

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

  • এটি জাভা, সি, সি ++ এবং পিএইচপি এর মতো ভাষা থেকে আলাদা যেমন জেএস বেনামে ফাংশন বন্ধ এবং কারিঙের জন্য ব্যবহৃত হয়।

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