লাম্বদা ক্যালকুলাসের বাইরে ফাংশনাল প্রোগ্রামিং?


21

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

দ্বিতীয়ত, কম্পিউটার সায়েন্সের ক্ষেত্রের ভিতরে কিন্তু ফাংশনাল প্রোগ্রামিং ভাষার বাইরেও ল্যাম্বা ক্যালকুলাসের কোনও ব্যবহার আছে?

উত্তর:


15

ল্যাম্বডা ক্যালকুলাসটি যুক্তি, বিভাগের তত্ত্ব, টাইপ তত্ত্ব, আনুষ্ঠানিক যাচাইকরণ, ... মূলত প্রোগ্রামিং ভাষার শব্দার্থবিজ্ঞান এবং আনুষ্ঠানিক যুক্তির সাথে কিছু করার জন্য মৌলিক। এটি এমন একটি মৌলিক আনুষ্ঠানিকতা যে এই ক্ষেত্রগুলিতে কাজ করা লোকেরা এর সুবিধা সম্পর্কেও প্রশ্ন তোলে না।

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

নিশ্চিত যে আপনি ল্যাম্বডা ক্যালকুলাস ব্যতীত ফাংশনাল প্রোগ্রামিং শিখতে পারেন তবে আপনি এটি ছাড়া কার্যকরী প্রোগ্রামিং কখনই বুঝতে পারবেন না।


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

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

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

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

ঠিক আছে, অনেক অনেক ধন্যবাদ ডেভ, এটি অত্যন্ত প্রশংসিত।
জ্যাকব

17

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

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

আসল উদাহরণ জন্য এখন। ধরুন কেউ আপনাকে জিজ্ঞেস করে কিনা ফাংশন দ্বারা সংজ্ঞায়িত ( এক্স ) = ( λ : সি ( আর ) এক্স - এক্স( 1 + + T 2 ) টন ) ( λ Y : আরসর্বোচ্চ ( এক্স , পাপ ( Y + + 3 ) )f:RR

f(x)=(λf:C(R).xxf(1+t2)dt)(λy:R.max(x,sin(y+3))
অবিচ্ছিন্ন হয়। আবার, আমরা অবিলম্বে উত্তর দিতে পারেন "হ্যাঁ" কারণ ফাংশন ব্যবহার করে সংজ্ঞায়িত করা হয় -calculus এবং ক্রমাগত মানচিত্রগুলি থেকে শুরু সর্বোচ্চ , , পাপ , ইত্যাদিλmaxsin

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


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

আহ, খুব খারাপ, আমি সে সম্পর্কে একটি বিস্তৃত প্রতিক্রিয়া লিখতাম।
আন্দ্রেজ বাউর

সে সম্পর্কে দুঃখিত। আপনার কোনও অতিরিক্ত তথ্য যুক্ত করার মত মনে হলে বিনা দ্বিধা প্রকাশ করুন :)
জ্যাকব

2
λ



2

এ সম্পর্কে আরও কিছু না জেনে আমি শুনেছি যে ভাষাবিদরা ল্যাম্বদা ক্যালকুলাস ব্যবহার করছেন।

http://www.sfu.ca/~jeffpell/Ling406/LambdaAbstrationOH.pdf , https://files.nyu.edu/cb125/public/Lambda/


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