ক্রিয়ামূলক প্রোগ্রামিংয়ের প্রস্তুতির ক্ষেত্রে আমার চিন্তাভাবনার পরিবর্তন করুন


9

প্রক্রিয়াজাতীয় এবং ওওপি থেকে আসার পরে প্রোগ্রামিংয়ের কার্যকরী শৈলীতে স্যুইচ করার সময়, "এই নতুন চিন্তার উপায়" সম্পর্কে আমার সামনে কী কী জিনিসগুলি জানা উচিত?

আপনি কীভাবে এফপি বিশ্বে ডাইভিংয়ের জন্য নিজেকে প্রস্তুত করেন এবং প্রথমবারের মতো এটি পান?

প্রথমে শেখার এবং প্রথমে সেট করার জন্য বেসিকগুলি কী কী?


2
এটি খুব সাধারণ, ইমো। শুধু পড়া শুরু! আজকাল ফাংশনাল প্রোগ্রামিংয়ের বেশিরভাগ বই এবং ম্যানুয়ালগুলি আপনার প্রশ্নের উত্তর দিয়ে শুরু করে।
devmiles.com

চেষ্টা করুন তারপরে যদি আপনি কোনও কিছুতে আটকে থাকেন তবে একটি প্রশ্ন পোস্ট করুন
টম স্কুইয়ার্স

@ ভ্লাদিমির ভোলডিন: এটি দুর্দান্ত হবে তবে এটি প্রতিটি বইয়ের জন্য বাধ্যতামূলক নয়। আপনি কি কিছু ভাল লোকের (বিশেষত ভাষা অজ্ঞায়নের) প্রস্তাব দিতে পারেন?
জনডোডো

আপনি ডুব দিতে হবে না । আপনি ওওপি থেকে এফপিতে রূপান্তরটি মসৃণ করতে সি # এর মতো একটি ওওপি ভাষায় ল্যাম্বডা এক্সপ্রেশন চেষ্টা করতে পারেন।
টমক্যাপস

4
আমি মনে করি আপনি এটি পিছনের দিকে আছে। ক্রিয়ামূলক প্রোগ্রামিং চেষ্টা করুন, এবং আপনার চিন্তাভাবনা বদলে যাবে।
কেভিন 21

উত্তর:


10

"কম্পিউটার প্রোগ্রামগুলির কাঠামো এবং ব্যাখ্যা" এর একটি অনুলিপি পান এবং প্রথম অধ্যায়ে "পদ্ধতিগুলি সহ বিমূর্তি নির্মাণ" এর মাধ্যমে নিজেকে কাজ করুন। আমার কাছে কার্যকরী প্রোগ্রামিংয়ের সর্বোত্তম ভূমিকা ever

সম্পাদনা: আপনি যদি আরও তুলনামূলক কিছু চান তবে "সাত সপ্তাহের মধ্যে সাতটি ভাষা" চেষ্টা করুন (অস্বীকৃতি: এই বইটি এখনও আমার টডো তালিকায় রয়েছে)।


6

প্রক্রিয়াগত "প্রথমে এটি করুন, তারপরে এটি করুন, তারপরে এটি করুন ..." সমস্যাগুলির সমাধানের পদ্ধতির পরিবর্তে আপনার ঘোষণামূলক চিন্তাভাবনা প্রয়োজন । পুনরাবৃত্তি বোঝা ভাল সূচনা পয়েন্ট হতে পারে, কারণ এটি পদ্ধতিগত এবং ঘোষণামূলক চিন্তাভাবনার মধ্যে এক ধরণের মিষ্টি স্পট।


4

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


3

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

ওওপি-তে,

a = 1 a = a + 1

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

ফাংশনাল প্রোগ্রামিংয়ের পরিচিতি আপনাকে এফপি সম্পর্কে কী রয়েছে তার একটি উচ্চ স্তরের ওভারভিউ দেয়।

দুটি সতর্কতা যদিও

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

8
"এফপি লাম্বদা ক্যালকুলাসের উপর ভিত্তি করে You এটি আপনার জানা দরকার" " না, আপনি না। ল্যাম্বডা ক্যালকুলাস জানার জন্য ট্যুরিং মেশিনগুলি (বা সমাবেশ) জানার চেয়ে ফাংশনাল প্রোগ্রামিং বোঝার প্রয়োজন নেই অপরিহার্য প্রোগ্রামিং বুঝতে।
sepp2k

@ sepp2k দীর্ঘমেয়াদী উদ্দেশ্য সহ এফপিতে ভাল হওয়ার জন্য, আমি সত্যই বিশ্বাস করি ল্যাম্বডা ক্যালকুলাস শেখা জরুরি। আপনি ল্যাম্বদা ক্যালকুলাস ছাড়াই এটি শিখতে পারেন তবে এটি শেখা আপনাকে এফপিতে আরও ভাল করে তুলবে।
উবারম্যানশ

2
এফপি সত্যায়িতভাবে তার রাজ্যটি বর্ণনা করে যে রাজ্যটি সাধারণত অপরিবর্তনীয়, এছাড়াও আমি নিশ্চিত নই যে আমি কম্পাইলারগুলি ধীর
জে কে

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

3

আমি নিম্নলিখিত মন্ত্রটি মনে রাখার জন্য যথাসাধ্য চেষ্টা করছি:

ইন ডেটা -> ডেটা ট্রান্সফর্ম -> ডেটা আউট

অথবা

ট্রান্সফর্মডেটা (ডেটা ইন) -> ডেটা আউট


1
এটি ট্রান্সফর্মডেটা (ডেটাআইএন) -> ডেটাআউট
উবারম্যানশ

:) মাতরা হিসাবে "ডেটা ইন, ট্রান্সফর্ম ডেটা, ডেটা আউট" বলা সহজ "ট্রান্সফর্মডেটা, ওপেন ব্র্যাকেট, ডেটা ইন, বন্ধ বন্ধনী, ডেটা আউট" আমি কেবল মজা করছি আমি আপনাকে সম্মত করছি।
অন্ধকাররাত্রি

এটি কেবল একটি বন্ধুত্বপূর্ণ মন্তব্য সাথী। উত্তরের জন্য ধন্যবাদ.
উবারম্যানশ

আমি জানি, আমি কেবল তোমার সাথে ঠাট্টা করছিলাম, কোনও অপরাধ হয়নি, আসলে আমি মনে করি আমি আমার ম্যাট্রা আপডেট করব।
অন্ধকাররাত্রি

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