লাম্বদা ক্যালকুলাসে ফাংশনগুলির বেনামে থাকা কেন গুরুত্বপূর্ণ?


19

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

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

সমস্যাটি হ'ল কোনও ফাংশন নিজেকে সহজভাবে কল করতে পারে না, কারণ ল্যাম্বডা ক্যালকুলাস নামযুক্ত ফাংশনগুলিকে অনুমতি দেয় না, যেমন,

n(x,y)=x+y

' n ' নামটি বহন করতে পারে না , এটি অবশ্যই বেনামে সংজ্ঞায়িত করা উচিত:

(x,y)x+y

লাম্বদা ক্যালকুলাসের নামকরণ না করা ফাংশনগুলি কেন গুরুত্বপূর্ণ? নামকরণ কার্যাবলী থাকলে কোন নীতি লঙ্ঘন করা হয়? নাকি আমি জিমের ভিডিওটি কেবল ভুল বুঝেছি?


4
এটি মোটেও গুরুত্বপূর্ণ মনে হচ্ছে না। আপনি একটি ভেরিয়েবল এন নির্ধারণ করতে পারেন এবং তারপরে আপনি ফাংশনটির একটি নাম দিয়েছেন। (x,t)x+yn
যুবাল ফিল্মাস

@ ইউভালফিল্মাস হ্যাঁ, আপনি কোনও ফাংশনে একটি নাম বাঁধতে পারেন। আমি মনে করি এখানে আসল প্রশ্নটি, ধাঁধা, কেন (ল্যাম্বডা ক্যালকুলাসে) কোনও ফাংশন নিজেকে এই জাতীয় নামে ডাকে না? পুনরাবৃত্ত ক্রিয়াকলাপ করার জন্য আমাদের ওয়াই অপারেটরের মতো প্রযুক্তি কেন দরকার? আমি আশা করি নীচে আমার উত্তরটি সাহায্য করবে।
জেরি 101

1
@ Jerry101 স্ব-প্রয়োগের অভাবে জন্য ঐতিহাসিক কারণ যে -calculus গণিতের একটি ভিত্তি, এবং ক্ষমতা হতে অভিপ্রেত ছিল স্ব-প্রয়োগ করে তোলে যেমন একটি ভিত্তি অবিলম্বে অসঙ্গত। সুতরাং এই আপাত অক্ষমতা (যা আমরা জানি এখন পরিবেষ্টিত হতে পারে) এটি λ- ক্যালকুলাসের একটি নকশা বৈশিষ্ট্য । λλ
মার্টিন বার্গার

@ মার্টিনবার্গার দয়া করে আরও বলুন। আমার উত্তরে কারণের সাথে বেমানান? নাকি অন্য কোনও কারণে?
জেরি 101

1
@ জেরি ১০১ এই বিবেচনায় অসঙ্গতিপূর্ণ যে আপনি গণিতের এমন ভিত্তিতে 0 = 1 প্রমাণ করতে পারবেন। Kleene এবং Rosser বিশুদ্ধ, untyped এর অসঙ্গতি দেখালেন পর -calculus, সহজভাবে টাইপ λ -calculus একটি বিকল্প যা আমাদের যেমন ফিক্স দফা combintors সংজ্ঞায়িত করার অনুমতি দেয় না যেমন উন্নত ছিল ওয়াই । তবে আপনি যদি সহজ- টাইপযুক্ত λ -ক্যালকুলাসে পুনরাবৃত্তি যোগ করেন তবে এটি আবার অসঙ্গতিপূর্ণ হয়ে যায়, কারণ প্রতিটি ধরণের একটি অ-সমাপনী প্রোগ্রাম দ্বারা বাস করা হয়। λλYλ
মার্টিন বার্গার

উত্তর:


24

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

তার প্রধান ফলাফল, দ্বিতীয় আইনে বর্ণিত দ্বিতীয় দৃশ্য , বিখ্যাত উপপাদ্য :

নামে কি? যাকে আমরা গোলাপ বলি
অন্য কোনও নামে মিষ্টি হিসাবে গন্ধ পাবে;

এই নামটি "নাম অর্থের সাথে অবদান রাখে না" হিসাবে স্বজ্ঞাতভাবে বোঝা যায়।

কাগজের বৃহত্তর অংশটি উপপাদকের পরিপূরক এবং এটি দেখানোর জন্য উত্সর্গীকৃত, নামগুলি কোনও অর্থ দেয় না, যদিও তারা অন্তহীন সমস্যার উত্স।

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

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

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

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

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

গোলাপ গোলাপ হ'ল গোলাপ গোলাপ।

"স্যাক্রেড এমিলি" শিরোনামে একটি সংক্ষিপ্ত যোগাযোগে 1913 সালে প্রকাশিত।


3
অতিরিক্ত দ্রষ্টব্য: সাম্প্রতিক দশকগুলিতে "গোলাপ" বেশিরভাগ নামের মতো নৈমিত্তিক উদাহরণ হিসাবে "ফুবার" (এবং এর অংশগুলি) দ্বারা প্রতিস্থাপিত হয়েছে (কম্পিউটার বিজ্ঞানের ক্ষেত্রে)। স্পষ্টতই এই পছন্দটি আমেরিকান রেলপথ ইঞ্জিনিয়াররা প্রবর্তন করেছিলেন।
ফ্রাঙ্কডব্লু

এটি বলেছিল যে দক্ষ যোগাযোগের জন্য প্রায়শই ব্যবহৃত ধারণাগুলির জন্য প্রচলিত নামগুলি গুরুত্বপূর্ণ।
রাফেল

1
@ রাফেল একমত হয়েছে, তবে আমি এটিকে দৈনন্দিন জীবনের বিভাগে রাখি। এবং আমরা কীভাবে সত্যিকারের আধ্যাত্মিক বিষয়গুলির সীমানা জানব? তবুও, আমি প্রায়শই উদ্বেগ অনুভব করি যখন আমি studentsশ্বর-প্রদত্ত স্থায়ী সত্যের জন্য শিক্ষার্থীরা সমস্ত পরিভাষা, স্বরলিপি এবং সংজ্ঞা (বা এমনকি কিছু উপপাদ্য যেভাবে বর্ণিত হয়) গ্রহণ করি। এমনকি এখানে, এসই তে শিক্ষার্থীরা প্রশ্ন জিজ্ঞাসা করে, তারা বুঝতে পারে না যে আমরা তাদের স্বরলিপিগুলি বা ক্লাসে তারা যে সংজ্ঞা ব্যবহার করি তা জানি না। সত্য নামের যাদু সহজে মারা যায় না।
বাবু

10

আমি একটা মতামত যে @babou এবং @YuvalFilmus সেই থেকে ভিন্ন venture করতে চায়: এটা অত্যাবশ্যক বিশুদ্ধ জন্য λ -calculus বেনামী ফাংশন আছে। শুধুমাত্র নামকরণ করা ফাংশনগুলির সাথে সমস্যাটি হ'ল আপনার কয়টি নাম প্রয়োজন হবে তা আপনার আগে থেকেই জানা দরকার। তবে খাঁটি λ -ক্যালকুলাসে আপনার ব্যবহৃত ফাংশনগুলির সংখ্যার উপর কোনও পূর্বের আবদ্ধ নেই (পুনরাবৃত্তি সম্পর্কে চিন্তা করুন), সুতরাং আপনি হয় (1) বেনামে ফাংশন ব্যবহার করুন, বা (২) আপনি π -ক্যালকুলাস রুটে যান এবং একটি নতুন ব্যবস্থা সরবরাহ করেন নাম সংযুক্তকারী ( νx.P মধ্যেπ -calculus) যে রান সময়ে তাজা নামের একটি অব্যয় সরবরাহ দেয়।

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

letf=MinN(λf.N)Mλ


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

λλ

শেষ লাইনটি পড়া উচিত (ল্যাম্বদা চ। এন) এম?
জো ব্যক্তি

@ জোয়েথ পিয়ারসন হ্যাঁ, ভাল দাগযুক্ত। সংশোধন করা হয়েছে। ধন্যবাদ।
মার্টিন বার্গার

4

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

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

ল্যাম্বডা ক্যালকুলাসে মূল কথাটি হল যে নামগুলি খুব মৌলিক স্তরে একটি অ্যালগরিদম বর্ণনা করার প্রয়োজন হয় না।


4

আমি এখন পর্যন্ত 3 টি উত্তর উপভোগ করছি - বেশিরভাগ বিশেষত @ বাবুর শেক্সপিয়রেন বিশ্লেষণ - তবে তারা আমার মতে প্রশ্নের সারমর্মটি কী বলে মনে করেন তাতে আলোকপাত করেন না।

আপনি যখন কোনও ফাংশনে কোনও ফাংশন প্রয়োগ করেন তখন calc-ক্যালকুলাস ফাংশনগুলির সাথে নামগুলি আবদ্ধ করে। বিষয়টি নামের অভাব নয়।

"সমস্যাটি হ'ল কোনও ফাংশন তার নাম উল্লেখ করে কেবল নিজেকে কল করতে পারে না"।

(খাঁটি লিস্পে, নাম -> ফাংশন বাঁধাই ফাংশনের শরীরে অন্তর্ভুক্ত নয় a কোনও ফাংশনটিকে নিজের নামে ডেকে আনার জন্য, ফাংশনটি এমন একটি পরিবেশকে বোঝায় যা ফাংশনকে বোঝায় P শুদ্ধ লিস্পের কোনও নেই) চক্রীয় ডেটা স্ট্রাকচার Imp ফাংশনটি উল্লেখ করে এমন পরিবেশের পরিবর্তন করে অশুচি লিপ্প এটি করে)

@ মার্টিনবার্গার যেমন উল্লেখ করেছেন, the-ক্যালকুলাস নাম অনুসারে কোনও ফাংশন কল করতে দেয় না এমন historicalতিহাসিক কারণটি ছিল ডিগ্রিটিভ লজিক সহ matics- ক্যালকুলাসকে গণিতের ভিত্তি হিসাবে ব্যবহার করার চেষ্টা করার সময় কারির প্যারাডক্সকে বাতিল করার প্রচেষ্টা । ওয়াই কম্বিনেটরের মতো কৌশলগুলি স্ব-উল্লেখ ছাড়াই পুনরাবৃত্তির অনুমতি দেয় বলে এটি কার্যকর হয়নি।

উইকিপিডিয়া থেকে:

আমরা ফাংশন নির্ধারণ করতে পারেন r = (λ.x x x ⇒ y)তারপর r r = (r r ⇒ y)

যদি r rসত্য হয় তবে yসত্য। যদি r rমিথ্যা হয় তবে r r ⇒ yসত্য, যা একটি বৈপরীত্য। তাই yসত্য এবং yযে কোনও বিবৃতি যেমন হতে পারে, কোনও বিবৃতি সত্য প্রমাণিত হতে পারে।

r rএকটি অ-সমাপ্তি গণনা। যুক্তি হিসাবে বিবেচনা করা r rএমন কোনও মানের জন্য একটি অভিব্যক্তি যা অস্তিত্ব নেই।


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

@ রোহনপ্রভু λ.x x xলিস্পে (lambda (x) (x x))এবং জাভাস্ক্রিপ্ট হিসাবে অনুবাদ করেছেন function (x) {return x(x);}x⇒yমানে x implies y, প্রায় হিসাবে একই (NOT x) OR y। দেখুন en.wikipedia.org/wiki/Lambda_calculus
Jerry101

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