ফাংশনাল প্রোগ্রামিং কেন


38

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


6
এআই প্রোগ্রামিংয়ে খুব বড়।
জল

3
@ একোয়া - এটি উত্তর না হওয়া উচিত কেন?
মার্টিন বেকেট

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

আমি মনে করি ফাংশনাল প্রোগ্রামিং আপনার মস্তিস্ককে আরও বেশি অনুশীলন করে এবং সত্যই পীথি কোডে নিয়ে যেতে পারে। সুতরাং এটি দুর্দান্ত।
অ্যাডেল

2
@ অপোরভ020: এবং জেনেরিকস, টিপলস এবং আবর্জনা সংগ্রহ এবং ... সবগুলিই কার্যকরী ভাষায় উদ্ভূত।
জন হ্যারোপ

উত্তর:


60

ফাংশনাল প্রোগ্রামিং ম্যাটারগুলি কেন শুরু করুন । তারপর থেকে সরানো কেন কেন ফাংশন প্রোগ্রামিং ম্যাটার্স ম্যাটার্স । কয়েকটি গুলি:

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

5
+1 - এগুলি সমস্ত দুর্দান্ত পয়েন্ট এবং আমি যা করার চেষ্টা করেছি তার থেকে এগুলি আরও সংক্ষিপ্তভাবে এবং আরও বিশদভাবে ব্যাখ্যা করা হয়েছে।
jmort253

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

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

মজার বিষয় কীভাবে দ্বিতীয় লিঙ্কটি কিছু "স্পষ্ট" যুক্তি সরবরাহ করে, জেনেও আমি প্রথম লিঙ্কটি পড়ি না।
জোকুন

+1: দুর্দান্ত উত্তর। আমি বিশেষত পছন্দ করি যে আপনি কীভাবে বুলেট পয়েন্ট # 1 এবং # 2 শব্দগুলিতে রেখেছেন।
জিম জি।

9

কার্যকরী প্রোগ্রামিং ধারণাগুলি এমন একটি ভিত্তি তৈরি করে যা আপনার চিন্তাভাবনা পরিবর্তন করে এবং আপনাকে বাস্তব বিশ্বের সমস্যা সমাধানে সহায়তা করে।

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

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

সংক্ষেপে, ক্রিয়ামূলক প্রোগ্রামিং আপনাকে শিখতে শেখায় সহায়তা করে।


তখন কি আসলেই এর কোনও নামের দরকার নেই? এটি কেবল 'সঠিক' প্রোগ্রাম ডিজাইন নয়?

4

আপনি যখন শুরু করছেন, কার্যকরী প্রোগ্রামিং হ'ল সেরা চিন্তাভাবনার মডেল। কারণ আপনার বেশিরভাগ প্রোগ্রামগুলিতে অবজেক্ট-ওরিয়েন্টেশন প্রয়োজন হবে না। অন্তত আমার অভিজ্ঞতা হয়েছে।

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

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


1
+1 - আমি পছন্দ করি যে আপনি কাজের জন্য সেরা কৌশলটি ব্যবহার করে নির্দেশ করেছেন: নিশ্চিত হন এটি বোধগম্য।
jmort253

1
দুঃখের বিষয়, সাধারণ জ্ঞান আমাদের শিল্পে বিরল। কারণ আমাদের প্রত্যেকেরই সম্পূর্ণ আলাদা অভিজ্ঞতা রয়েছে, যা আমরা ভুলের কারণে পৃথক হয়ে থাকি, আমাদের প্রত্যেকে আলাদা আলাদা অভ্যাস বিকাশ করে এবং কেন আমরা তা করি ... যেমন উত্স নিয়ন্ত্রণকে অভিযোজিত করা, যিনি সর্বদা কাজ করেছেন তার পক্ষে কোনও ধারণা নেই পরস্পরে।
crosenblum

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

3

কারণ এটি ক্রিয়াপদের উপর জোর দেয়, বিশেষ্যগুলিতে নয়। কখনও কখনও এটি ক্রিয়াগুলি যে বিষয়টি গুরুত্বপূর্ণ।


ওওপি বিশেষ্যগুলিকে জোর দেয়। কখনও কখনও এটি বিশেষ্য যে বিষয়টি। কীভাবে আমরা জানি? - মিথ্যা দ্বিধা। সিস্টেম

3

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


সুতরাং, কেবল এটিই 'ভাল' এর সংজ্ঞাটি নয়? আপনি বর্ণিত বিষয়গুলি বাদ দিয়ে আমরা কেন অন্য কিছু করতে চাইব?

2

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

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