একটি ভাল প্রথম ক্রিয়ামূলক প্রোগ্রামিং প্রকল্প কি হবে? [বন্ধ]


19

একটি ভাল প্রথম ক্রিয়ামূলক প্রোগ্রামিং প্রকল্প কি হবে?

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

সমস্যাটি হ'ল আমি গ্রীষ্মের ছুটির সুযোগটি গ্রহণ করতে এবং কার্যকরী প্রোগ্রামিংয়ের উপর আরও ভাল বোঝার জন্য এবং একটি ভাষার সাথে পরিচিত হতে আমার প্রকল্পে সময়ের আগে কিছুটা আগে শুরু করতে চাই।

আপনি কী বলবেন একটি ভাল অনুশীলন প্রকল্প যা কিছুটা চ্যালেঞ্জিং, তবে আমাকে ভাষা, দৃষ্টান্ত ইত্যাদি শিখতে দেয় এবং তারপরে আপনি আমার স্নাতক প্রকল্পের জন্য একটি ভাল প্রকল্প (আরও উন্নততর) হতে পারেন কি বলে মনে করেন?

ফাংশনাল প্রোগ্রামিংয়ে যাওয়ার সময় সবচেয়ে ভাল ভাষার জন্য পরামর্শগুলি প্রশংসা করা হবে।


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

উত্তর:


10

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

কিছু ধারণা, মোটামুটি অসুবিধাতে:

  • জেনেটিক অ্যালগরিদম - এমন একটি প্রোগ্রাম লিখুন যা কোনও নির্দিষ্ট কার্যের সমাধানগুলিকে বিকশিত করে যেখানে সমাধানগুলি একটি সাধারণ ডিএসএলে উপস্থাপন করা হয়। 2D গ্রিডে খাবারের সন্ধান করে এবং বিভিন্ন ধরণের কৌশল বিকশিত করে এমন ছোট্ট বট তৈরির আগে আমি মজা করেছি

  • পার্সিং কম্বিনেটর - একটি পার্সার কম্বিনেটর লাইব্রেরি তৈরি করুন যা আপনাকে উচ্চতর অর্ডার ফাংশনগুলি ব্যবহার করে একটি স্বেচ্ছাসেবী ভাষার জন্য পার্সার তৈরি করতে সক্ষম করে।

  • আপনি যদি সত্যিই কোনও চ্যালেঞ্জ চান তবে আপনি একটি কম্পিউটার গেমটি লেখার চেষ্টা করতে পারেন ... সচেতন থাকুন যে গেমগুলির একটি বিশাল পরিমাণে পারস্পরিক পরিবর্তনযোগ্য অবস্থা রয়েছে যা কার্যকরী প্রোগ্রামিং শৈলীতে পরিচালনা করা জটিল হতে পারে। আপনি মনডস ইত্যাদি সম্পর্কে জানতে চেয়েছিলেন তার চেয়ে আরও বেশি কিছু শেখার প্রত্যাশা করুন .....

আমি ক্লজিউরকে একটি ব্যবহারিক কার্যকরী ভাষা হিসাবে সুপারিশ করব। আমি এটি প্রায় 18 মাস ধরে ব্যবহার করছি এবং আমি পছন্দটি নিয়ে অত্যন্ত খুশি। প্রধান কারণগুলি হ'ল:

  • সংমেয় - ক্লোজারে একটি আশ্চর্যজনক এসটিএম সিস্টেম রয়েছে যা আমার দৃষ্টিতে এটি বহু-কোর সম্মিলনের জন্য এই মুহুর্তে বিশ্বের সেরা ভাষা হিসাবে তৈরি করেছে। ভিডিওটি এখানে দেখুন: http://www.infoq.com/preferencesations/Value-Identity-State-Rich- হিকি আপনি যদি বুঝতে চান যে এটি কেন এত বিশেষ?
  • এটি একটি লিস্প - সুতরাং "কোডটি ডেটা" দর্শনের কারণে এটি ম্যাক্রো-ভিত্তিক রূপক (যে প্রোগ্রামগুলি প্রোগ্রাম লেখায়, জেনেটিক অ্যালগোরিদম ইত্যাদি) জন্য দুর্দান্ত philosophy
  • প্র্যাকমেটিক ফাংশনাল প্রোগ্রামিং - ক্লোজার স্টাইলটি খুব কার্যকরী (উচ্চতর অর্ডার ফাংশনগুলিতে প্রচুর জোর, অলস ক্রম ইত্যাদি) তবে এটি হাস্কেলের মতো সম্পূর্ণ শুদ্ধ নয়। এমটিবেল স্টেট এবং পার্শ্বের প্রভাবগুলি পরিচালনা করার জন্য প্রচুর দুর্দান্ত সরঞ্জাম রয়েছে
  • ডায়নামিক - ক্লোজিউর ডিফল্টরূপে একটি গতিময় ভাষা। আমি এটি উত্পাদনশীলতার জন্য একটি বড় উত্সাহ পাই। তবে, আপনি যদি স্ট্যাটিক টাইপিংয়ের পারফরম্যান্স সুবিধাগুলি চান তবে আপনি পরে স্ট্যাটিক টাইপের ইঙ্গিতগুলি যুক্ত করতে পারেন।
  • সম্পূর্ণরূপে সংকলিত - ক্লোজার কোডটি সর্বদা মেনে চলতে হয় (এমনকি যদি আপনি "ইওল" করেন) তবে আপনি বেশ সুনির্দিষ্ট পারফরম্যান্স পান - আমি ব্যবহার করেছি বেশিরভাগ গতিশীল ভাষার চেয়ে অবশ্যই ভাল।
  • আপনি জেভিএম বাস্তুতন্ত্রের সমস্ত লাইব্রেরি এবং সরঞ্জামগুলিতে অ্যাক্সেস পান । সুতরাং একাডেমিক ভাষাগুলির বিপরীতে যেগুলির খুব সীমিত লাইব্রেরি উপলব্ধ রয়েছে, আপনি জাভা মহাবিশ্বের যে কোনও কিছুতে খুব সহজেই অ্যাক্সেস করতে পারবেন

আপনি খুব সহজেই এর সাথে বেসিকগুলি চেষ্টা করে দেখতে পারেন:


আমি আপনার উত্তরটি প্রশ্নের জন্য বেছে নিয়েছি কারণ এটি আমার সমস্ত প্রশ্নের উত্তর দিয়েছে। সময় দেওয়ার জন্য আপনাকে অনেক ধন্যবাদ।
মেমে

হাস্কেলের এসটিএমও রয়েছে; (
বিকল্প

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

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

9

নির্দিষ্ট প্রকল্প সম্পর্কে চিন্তাভাবনা শুরু করার আগে, কার্যকরী প্রোগ্রামিংয়ের প্রাথমিক বিষয়গুলি শিখতে শুরু করুন যাতে আপনার প্রকারের প্রকল্পগুলির সম্পর্কে ভাল ধারণা থাকতে পারে যা ভাল be

শুরু করার জন্য সেরা জায়গাটি সম্ভবত কম্পিউটার প্রোগ্রামগুলির স্ট্রাকচার এবং ব্যাখ্যার (এসআইসিপি), যা লিস্পের স্কিম উপভাষার উপর ভিত্তি করে। এটি একটি ক্লাসিক সিএস পাঠ্য এবং সম্পূর্ণ পাঠ্য অনলাইনে উপলব্ধ (লিঙ্ক সরবরাহিত)।

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

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


বইটির লিঙ্কটি সরবরাহ করার জন্য আপনাকে ধন্যবাদ। আমি আরও ভাল বোঝার জন্য এটি পড়তে যাচ্ছি।
মেম্বি

আপনি কি আজ নিজের এসআইসিপি পড়েছেন?
ম্যাটিডি

3

পরিমাণগত বিশ্লেষণ

আপনি যদি ফিনান্সিয়াল প্রোগ্রামিংয়ের সাথে কিছু পরিমাণে স্টাফ করা কিছুটা আকর্ষণীয় বলে মনে করেন তবে এটি খুব অ্যালগরিদমিক match আমি পোর্টফোলিও তত্ত্ব এবং শার্প এবং সর্ডিনো অনুপাত ইত্যাদির মতো জিনিসগুলি বলছি an এমন একটি অ্যাপ্লিকেশন তৈরি করুন যা কোনও তহবিলের রিটার্ন বিশ্লেষণ করে এবং বিভিন্ন পরিসংখ্যান, ডায়াগ্রাম ইত্যাদি দেয় Make

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


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

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

নিজেরাই অ্যালগরিদমের বাস্তবায়ন সম্পর্কে কি?
কোয়ান্ট_দেব

বেশিরভাগ ক্ষেত্রে আমি কোনও সমস্যা দেখছি না, তাই না? একটি তীব্র অনুপাত গণনা করুন, প্রথমে আপনি কোনও রিটার্ন সিরিজ থেকে বার্ষিক রিটার্ন গণনা করুন, তারপরে আপনি সেই মানটি ঝুঁকিমুক্ত হার এবং অস্থিরতার সাথে ব্যবহার করুন: (বার্ষিকীণ রিটারন - রিস্কারফ্রিট) / অস্থিরতা। একটি কার্যকরী ভাষা কিছুই পরিচালনা করতে পারে না
Homde

দামের মডেল ক্রমাঙ্কন সম্পর্কে কী?
কোয়ান্ট_দেব

3

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


2

আপনি ওসিএএমএল এর সাথে স্কিম বা লিস্পের জন্য দোভাষী লিখতে পারেন।


এছাড়াও এখানে হেসকেলে লেখার স্কিম সম্পর্কে একটি হাস্কেল বইও রয়েছে তা লক্ষ করুন।
বিকল্প

2

আপনি কোন কার্যকরী ভাষার কথা ভাবছিলেন? প্রত্যেকের আলাদা আলাদা বৈশিষ্ট্য রয়েছে। যে ভাষাটি আমার উপরে সবচেয়ে বেশি প্রভাব ফেলেছিল তা হ্যাস্কেল ছিল এবং আমি আপনাকে একইভাবে করার পরামর্শ দিচ্ছি।


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

আপনি কোথায় আছেন এবং কী করেন তার উপর দৃ St়ভাবে নির্ভর করে। আমাদের জন্য মাইক্রোসফ্ট প্রোগ্রামিং প্রযুক্তিগুলি অকেজো কারণ তারা আমাদের মূল প্ল্যাটফর্মটিকে সমর্থন করে না। তবে আমি খনন করি: আপনি যদি F #, দুর্দান্ত ব্যবহার করতে চান তবে একটি নতুন এফ # নির্দিষ্ট প্রশ্নটি খুলুন।

আমি এটি ব্যবহার করতে চাই না। আমি এখনও সিদ্ধান্ত নিই নি। ভাষা ব্যবহারের প্রশ্নটি যে কোনওভাবেই ছিল মাধ্যমিক।
মেমে

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

0

আপনি কিছু ওপেন সোর্স প্রকল্পে অবদান রাখতে পারেন।

উদাহরণস্বরূপ, ফ্রিজ প্রোগ্রামিং ল্যাঙ্গুয়েজ প্রকল্পে, অনেক কাজ করার দরকার আছে। উদাহরণস্বরূপ, আপনি বেস হাস্কেল লাইব্রেরিগুলি পোর্টিং সম্পর্কে যত্ন নিতে পারেন। এটি কাজ করার সময় আপনাকে একটি হাস্কেল বিশেষজ্ঞ বাছাই করে তুলবে।

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